如何使用VBA创build与同一打开的工作簿的超链接

设置

  • 我有一个Excel工作簿存储在我的硬盘上。
  • 这个结构是这样的,在第一张纸上我有同一工作簿中其他纸张的名称列表(…可以创build或删除)。
  • 第一张纸上的名单上的所有名称应该是超链接到工作簿中的相应工作表。 所以,通过点击第一张纸上的名字,您可以跳转到相应的纸张上。
  • 当一个新的工作表被创build时,一个macros也会在第一个工作表的列表上创build新的名字,并创build一个超链接。 这工作。 但是…链接指向存储的文件版本,而不是打开的工作簿! 单击链接将打开存储的文件,而不是正在工作的文件。

问题:如何创build一个总是指向同一个打开的工作簿而不是存储的副本的超链接?

尝试这个:

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ "Sheet3!", TextToDisplay:="Link to sheet #3" 

地址是URL,SubAddress是页面(或Excel工作簿中的工作表或范围)的本地化。

您可以尝试创build超链接作为公式(通过VBA,如您所需)。 我正在使用你发布的参数,这可能需要一些调整。

 Dim rngsrc as Range, rngtrgs as String Set rngsrc = Worksheets("Summary").Cells(Cell.Row, 5) Set rngtrg = "'" & sSheetName & "'!B5" rngsrc.FormulaR1C1 = "=HYPERLINK(" & rngtrgs & "," & sSheetName & ")" 

看到

官方文件

例1

例2

这(希望)回答你的问题。 作为一个单独的说明,仍然有待澄清为什么你看到你看到的行为。

看来问题来自以下事实:我的文件在SharePoint文件夹中。 如果我打开它只是为了阅读,超链接工作正常。 如果我打开文件进行编辑,则将SharePoint文件的副本放在我的硬盘上的指定位置上。 所以,文件的path与我以只读方式打开文件的path不一样。 我应该使用超链接吗? 跟着解决这个问题?

所以,这一切都归结为这样一个问题:在VBA / Excel中, 我可以创build一个超链接,它总是指向同一个打开的文件中的一个位置,以便超链接忽略相应文件的存储path? 使用空string(或BLANK)没有帮助作为hypelinks.add中地址参数,因为Excel似乎自动填充整个存储path。

我升级到Office 2013和“PADAM”:问题消失了! 在2007版本中,似乎在Excel / VBA中存在一个错误。