我已经有一个宏可以进入每个工作表的单元格F4,并将该工作表重命名为该工作表(我正在运行很多间接调用,因为我从许多不同的工作表中提取数据)。每个工作表上的每个F4单元都链接到具有所有名称的母版工作表-因此,当我更改母版中的Hardcode时,它会更改该特定工作表的单元格F4。但是,为了运行该宏并将该工作表重命名为F4,我需要手动转到该工作表并单击F2,然后在单元格F4中输入,然后宏将工作表重命名,然后其他所有工作即可。我如何拥有它以便它可以自动执行此操作?
-非常抱歉,如果已解决,请通读一堆评论,但没有一个能真正满足我的需求
'''这是我要重命名工作表的功能,只需要对其进行调整,以便在我更改主文件后它本身可以“ F2然后按Enter”,从而更改单元格F4的值”
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
答案 0 :(得分:0)
尝试一下:
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
答案 1 :(得分:0)
如果您将它作为主表的Worksheet_Change
事件放入
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中没有两个工作表具有相同的值,因为两个选项卡都不能具有相同的名称。