首页 文章

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

提问于
浏览
1

The setup

  • 我的硬盘上存有Excel工作簿 .

  • 结构是这样的,在第一张纸上,我有一个同一工作簿中其他工作表的名称列表(......可以创建或删除) .

  • 列表中第一张表上的所有名称都应该是指向工作簿中相应表单的超链接 . 因此,通过单击第一个工作表上的名称,您将跳转到相应的工作表 .

  • 创建新工作表时,宏会在第一个工作表的列表中创建新名称,并对其进行超链接 . 这很有效 . ...但是......链接指向文件的存储版本,而不是打开的工作簿!单击链接将打开存储的文件,而不是正在运行的文件 .

QUESTION: How to create a hyperlink that always points to the same open workbook and not to the stored copy of it?

4 回答

  • 0

    试试这个:

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

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

  • 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

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

  • 0

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

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

  • 0

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

相关问题