如何使用VBA创建到同一个打开的工作簿的超链接

时间:2015-06-08 09:45:08

标签: excel excel-vba hyperlink vba

设置

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

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

4 个答案:

答案 0 :(得分:0)

试试这个:

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

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

答案 1 :(得分:0)

您可以尝试将超链接创建为公式(根据需要通过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 & ")"

Official documentation

Example 1

Example 2

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

答案 2 :(得分:0)

似乎问题来自以下事实:我的文件位于SharePoint文件夹中。如果我打开它只是为了阅读,超链接工作正常。如果我打开文件进行编辑,则会将SharePoint文件的副本放在我指定位置的硬盘上。因此,文件的路径与我以只读方式打开文件的路径不同。我应该使用超链接。关注 来解决此问题吗?

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

答案 3 :(得分:0)

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