无法在excel VBA中将工作表名称设置为子地址?

时间:2017-02-13 02:03:28

标签: excel vba excel-vba hyperlink

这是我的代码:

    Dim wsVar As Worksheet
For Each wsVar In ThisWorkbook.Sheets
   With wsVar
 .Hyperlinks.Add Anchor:=.Range("G1"), _
 Address:="", _
 SubAddress:=Sheets("Table of Contents").Name & "!A1", _
 TextToDisplay:="Table of Contents"
   End With
Next wsVar

上面还有其他代码,但这些代码与我的问题无关。看到子地址线? 我已经尝试了基本上所有的东西来获得该子地址来引用同一工作簿中名为Table of Contents的工作表。它不会起作用(我也不知道为什么我需要"!A1",但似乎我从其他地方看到了它所以它已经这样做了#s; s那里)。 当它确实有效时,它会创建一个超链接,当然,如果你单击该超链接,它表示该引用是无效的。所以我知道这段代码。

1 个答案:

答案 0 :(得分:3)

当工作表名称包含空格(以及其他一些特殊字符)时,您需要将其用单引号括起来,即SubAddress:="'" & Sheets("Table of Contents").Name & "'!A1"

(或.Name,但使用Sheet对象的Sheets属性获取您用作COUNT()集合索引的名称有点多余。)