Excel宏-用于每个循环以超链接回主页/索引页

Excel宏-用于每个循环以超链接回主页/索引页,excel,vba,Excel,Vba,我有一个包含许多工作表的工作簿(365++)。同时,还有许多VBA代码示例,允许宏创建从索引页到内容的超链接;但是,完全没有创建从内容返回到索引页面的超链接的例子。 使用loop thru解决方案,我可以让代码正常工作,但它只对现有活动页面有效,而我需要它循环工作簿中的每个工作表范围“A1”,以将其链接回主页 代码如下: Sub vba_loop_sheets() Dim ws As Worksheet For Each ws In Worksheets 'Dummy

我有一个包含许多工作表的工作簿(365++)。同时,还有许多VBA代码示例,允许宏创建从索引页到内容的超链接;但是,完全没有创建从内容返回到索引页面的超链接的例子。

使用loop thru解决方案,我可以让代码正常工作,但它只对现有活动页面有效,而我需要它循环工作簿中的每个工作表范围“A1”,以将其链接回主页

代码如下:

Sub vba_loop_sheets()

Dim ws As Worksheet

    For Each ws In Worksheets
        'Dummy data to test for loop
        'ws.Range("A1").Value = "Dummy"
        
        'Only works for existing sheets,need to loop for each loops of each sheets
        Range("A1").Select
        ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), Address:="", SubAddress:="Main!A1", TextToDisplay:="Back to Main Sheet"
    Next ws

End Sub

可以在所有工作表中启动循环,但在该循环中,您仅引用活动工作表,而不会更改活动工作表

您不需要ActiveSheet或Select。相反,使用循环中的
ws
工作表来限定工作表的
.Hyperlinks.Add
和锚定范围。像这样:

Sub vba_loop_sheets()

Dim ws As Worksheet

    For Each ws In Worksheets
        ws.Hyperlinks.Add Anchor:=ws.Range("A1"), Address:="", SubAddress:="Main!A1", TextToDisplay:="Back to Main Sheet"
    Next ws

End Sub