Excel 如何使用VBA创建指向同一打开工作簿的超链接

Excel 如何使用VBA创建指向同一打开工作簿的超链接,excel,hyperlink,vba,Excel,Hyperlink,Vba,设置 我的硬盘上存储了一份Excel工作簿 结构是这样的,在第一张工作表上,我有同一工作簿中其他工作表的名称列表(…可以创建或删除) 列表中第一张工作表上的所有名称都应该是指向工作簿中相应工作表的超链接。因此,通过单击第一张图纸上的名称,可以跳转到相应的图纸 创建新工作表时,宏还会在第一张工作表的列表上创建新名称,并对其进行hypelink。这很有效。 但是 链接指向文件的存储版本,而不是打开的工作簿!单击链接将打开存储的文件,而不是正在工作的文件 问题:如何创建一个始终指向同一个打开的工作

设置

  • 我的硬盘上存储了一份Excel工作簿
  • 结构是这样的,在第一张工作表上,我有同一工作簿中其他工作表的名称列表(…可以创建或删除)
  • 列表中第一张工作表上的所有名称都应该是指向工作簿中相应工作表的超链接。因此,通过单击第一张图纸上的名称,可以跳转到相应的图纸
  • 创建新工作表时,宏还会在第一张工作表的列表上创建新名称,并对其进行hypelink。这很有效。 但是 链接指向文件的存储版本,而不是打开的工作簿!单击链接将打开存储的文件,而不是正在工作的文件
问题:如何创建一个始终指向同一个打开的工作簿而不是其存储副本的超链接?尝试以下操作:

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
    "Sheet3!", TextToDisplay:="Link to sheet #3"
Address是URL,SubAddress是页面(或excel工作簿中的工作表或范围)的区域设置。

尝试以下操作:

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

地址是URL,子地址是页面(或excel工作簿中的工作表或范围)的区域设置。

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


这(希望)回答了你的问题。作为一个单独的注意事项,仍然需要澄清为什么您会看到所看到的行为。

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


这(希望)回答了你的问题。作为一个单独的注意事项,仍然需要澄清为什么您会看到您看到的行为。

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


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

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


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

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

我升级到Office 2013和“PADAM”:问题消失了!2007版的Excel/VBA中似乎有一个bug。

宏代码是什么?相关:你说的“打开存储的文件”是什么意思?单击超链接是否要求您打开存储的版本并放弃更改?是否仅在最后一张新创建的图纸上发生?您可以尝试将文件保存为自动宏的一部分(作为一种解决方法)。单击链接不会将我带到目标工作表,但会打开一个对话框,询问我是否要打开该文件:打开的同一文件的存储版本。Excel设置中是否有内容?即使是空工作簿/工作表上的一个简单函数:=HYPERLINK(“Sheet2!A1”;“跳转到工作表2”)似乎也能工作,因此它会打开一个对话框,从硬盘上打开文件的存储版本。请:1)回答发布的问题,2)发布您收到的确切消息。你必须帮助别人帮助你。宏代码是什么?相关:你说的“打开存储的文件”是什么意思?单击超链接是否要求您打开存储的版本并放弃更改?是否仅在最后一张新创建的图纸上发生?您可以尝试将文件保存为自动宏的一部分(作为一种解决方法)。单击链接不会将我带到目标工作表,但会打开一个对话框,询问我是否要打开该文件:打开的同一文件的存储版本。Excel设置中是否有内容?即使是空工作簿/工作表上的一个简单函数:=HYPERLINK(“Sheet2!A1”;“跳转到工作表2”)似乎也能工作,因此它会打开一个对话框,从硬盘上打开文件的存储版本。请:1)回答发布的问题,2)发布您收到的确切消息。你必须帮助别人帮助你。宏代码是什么?相关:你说的“打开存储的文件”是什么意思?单击超链接是否要求您打开存储的版本并放弃更改?是否仅在最后一张新创建的图纸上发生?您可以尝试将文件保存为自动宏的一部分(作为一种解决方法)。单击链接不会将我带到目标工作表,但会打开一个对话框,询问我是否要打开该文件:打开的同一文件的存储版本。Excel设置中是否有内容?即使是空工作簿/工作表上的一个简单函数:=HYPERLINK(“Sheet2!A1”;“跳转到工作表2”)似乎也能工作,因此它会打开一个对话框来打开sto