首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转到每个工作表中的单元格并刷新的Excel VBA (F2+Enter)

转到每个工作表中的单元格并刷新的Excel VBA (F2+Enter)
EN

Stack Overflow用户
提问于 2019-04-05 21:46:10
回答 2查看 1.4K关注 0票数 2

我已经有了一个宏,它进入每个工作表的单元格F4并重命名该工作表(我运行了很多间接操作,因为我从许多不同的工作表中提取数据)。每个工作表上的每个F4单元格都链接到一个具有所有名称的母版工作表-因此,当我在母版中更改硬代码时,它会更改该特定工作表的单元格F4。但是,为了使宏运行并将该工作表自身重命名为F4,我需要手动转到该工作表,单击F2,然后在单元格F4中输入,然后宏重命名该工作表,然后一切正常。我怎样才能让它自动完成这项工作呢?

-Terribly很抱歉,如果这个问题已经解决了,我通读了一堆评论,但没有一个真正解决了我需要的问题

‘这是我用来重命名工作表的方法,只需要调整它,使它在我更改主文件后"F2“并输入”s“本身,这反过来会更改单元格F4的值。”

代码语言:javascript
复制
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  If Target.Address(0, 0) = "F4" Then
    Sh.Name = Sh.Range("F4").Value
  End If
End Sub
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-05 22:49:44

如果将其作为主表的Worksheet_Change事件放入:

代码语言:javascript
复制
Private Sub Worksheet_Change(ByVal Target As Range)
    For Each sh In ThisWorkbook.Sheets
        If sh.Name <> Target.Parent.Name And sh.Name <> sh.Range("F4") Then
            sh.Name = sh.Range("F4")
        End If
    Next
End Sub

它将在每次对主表进行更改时运行,如果它发现一个表(而不是主表)的名称与该表的F4值不同,它将更正它。

但请记住,您需要确保没有两个工作表在F4中具有相同的值,因为没有两个选项卡可以具有相同的名称。

票数 0
EN

Stack Overflow用户

发布于 2019-04-05 22:17:43

试一试:

代码语言:javascript
复制
Sub KickStart()
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Sheets
        sh.Select
        Range("F4").Select
        Application.SendKeys "{F2}"
        Application.SendKeys "{ENTER}"
        DoEvents
    Next sh
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55536826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档