在Excel VBA中创建自我更新

时间:2017-09-04 10:24:24

标签: excel vba excel-vba

我是VBA的新手,我正在使用Excel中的一个简单项目。我有一个设备清单,每个部分分成不同的工作表。第一个工作表是一个目录,其中包含所有设备的列表。单击一个可以将用户带到该特定设备的工作表。目前,我已经将一个宏绑定到名为New_Entry的按钮,该按钮从模板创建一个新表:

Sub New_Entry()
    Sheets.Add Type:= _
        "C:\Users\MyName\AppData\Roaming\Microsoft\Templates\Archive_Entry.xltx"
    ActiveSheet.Move After:=Worksheets(Worksheets.Count)
End Sub

我想知道是否可以使用通过按钮添加的每个新工作表的单元格B2(即该设备的名称)的内容自动更新目录。这是用于创建超链接的录制宏:

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "'Sheet1 (24)'!B1", TextToDisplay:="Sheet1 (24)!B1"

1 个答案:

答案 0 :(得分:0)

为了实现结果,您可以应用我在评论中描述的解决方案,而不是对Sheet索引应用Worksheets(Worksheets.Count)进行硬编码,即对应于最后Worksheet,如以下VBA代码段所示:

Sub New_Entry()
    Sheets.Add Type:= _
    "C:\Users\MyName\AppData\Roaming\Microsoft\Templates\Archive_Entry.xltx"

    ActiveSheet.Move After:=Worksheets(Worksheets.Count)

    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "'Sheet1 (Worksheets(Worksheets.Count))'!B1", TextToDisplay:="Sheet1 (Worksheets(Worksheets.Count))!B1"
End Sub

希望这可能会有所帮助