2017-09-04 69 views
0

我是VBA的新手,我正在使用Excel中的一个简单项目。我有一个设备清单,每个部分分成不同的工作表。第一张工作表是一张包含所有设备清单的目录。点击一个会将用户带到该工作表的特定设备。目前,我已经打了一个宏按钮叫New_Entry这将创建一个新的工作表掉模板:在Excel中自行更新的VBA中创建目录

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

您可以插入代码片段注入子程序New_Entry(),从而同步的新创建:如图所示在下面的VBA代码段对应于最后Worksheet指数工作表并向其添加超链接。 –

+0

是的,但这只会执行Sheet1(24)的超链接。我想这个问题真的是“最后一张”,然后“最后一张,B1”的正确语法。 – user3437137

回答

0

为了达到效果,您可以申请我已经在我的评论描述,但不是硬编码Sheet指数的解决方案适用Worksheets(Worksheets.Count),即

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 

希望这可以帮助

+0

谢谢亚历克斯!我想我可以激活工作表1,然后使用 Activecell.End(xlDown).Offset(1,0)。选择 突出显示目录列中的下一个空单元格,并使用您的代码具有B2单元格内容复制并超链接到它。但是,情况似乎并非如此。有什么建议么?提前致谢。 – user3437137

+0

欢迎您!您可以根据附加需求/业务逻辑进一步修改代码。如果满意,请标记回答的问题,如果您有更多问题,请不要犹豫,单独发布。祝你的项目好运。最好的祝福, –