在Excel VBA中不能将工作表名称设置为子地址?

这是我的代码:

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 

上面还有其他代码,但这与我的问题无关。 看到子地址线? 我已经尝试了基本上所有的东西,以获得该子地址引用在同一工作簿中名为目录的工作表。 它不会工作(我也不知道为什么我需要“!A1”,但似乎我做我从哪里看,所以它在那里)。 当它工作,它会创build一个超链接,当然,但是如果你点击超链接它说参考是无效的。 所以我知道这是代码的这一行。

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

(或SubAddress:="'" & Sheets("Table of Contents").Name & "'!A1" ,但使用Sheet对象的.Name属性来获取用作索引的名称有点多余Sheets系列)。