VBA 生成的 HYPERLINK 公式实际上并没有创建可行的超链接
VBA produced HYPERLINK formula doesn't actually create workable hyperlink
我正在尝试通过 VBA 生成 HYPERLINK 公式,但是当我点击生成的 link 时,我收到 Excel 错误消息 "Cannot open the specific file." 我试过 this 但结果相同。
这是我生成 link 的代码。
wksUsersSheet.Range(COMMENTARY_COL & lngRowNow).FormulaR1C1 =
"=HYPERLINK(" & Chr(34) & "[" & strThisBooksName & "]" &
strFoundMatchWorksheetName & "!" & strFoundMatchAddress & Chr(34) & ","
& Chr(34) & rngReturnedMatchingPart.Value & Chr(34) & ")"
即时 window 显示如下:
=HYPERLINK("[UPN_Template_Wip]AleksV!$I","2322 734 61009L")
我也用 .Formula
试过了,但结果是一样的。
我在 Windows 7 中使用 Excel 2007。我是否遗漏了一些东西,因为它看起来都很好,只是工作不正常。谢谢。
使用宏录制器在空白测试中创建超链接sheet,我得到:
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"Sheet1!A1", TextToDisplay:="HL Here"
将其翻译成您的具体情况,我相信您应该:
wksUsersSheet.Hyperlinks.Add Anchor:=wksUsersSheet.Cells(lngRowNow, Commentary_Col), _
Address:="", _
SubAddress:="[" & strThisBooksName & "]" & strFoundMatchWorksheetName & "!" & _
strFoundMatchAddress, _
TextToDisplay:=rngReturnedMatchingPart.Value
根据您的评论试试这个:
将您的 strFoundMatchAddress
转换为行号和列号,我将它们称为 FoundMatchAddrRow
和 FoundMatchAddrCol
ActiveCell.FormulaR1C1 = "=HYPERLINK(" & Chr(34) & "[" & strThisBooksName & "]" & _
strFoundMatchWorksheetName & "!R[" & FoundMatchAddrRow & "]C[" & _
FoundMatchAddrCol & "],""" & _
rngReturnedMatchingPart.Value & """)"
请注意,使用 ""
会在最终字符串中生成一个 "
,并减少连接并消除对 Chr(34)
的需要。这不是必需的,但它确实减少了输入。
我正在尝试通过 VBA 生成 HYPERLINK 公式,但是当我点击生成的 link 时,我收到 Excel 错误消息 "Cannot open the specific file." 我试过 this 但结果相同。
这是我生成 link 的代码。
wksUsersSheet.Range(COMMENTARY_COL & lngRowNow).FormulaR1C1 =
"=HYPERLINK(" & Chr(34) & "[" & strThisBooksName & "]" &
strFoundMatchWorksheetName & "!" & strFoundMatchAddress & Chr(34) & ","
& Chr(34) & rngReturnedMatchingPart.Value & Chr(34) & ")"
即时 window 显示如下:
=HYPERLINK("[UPN_Template_Wip]AleksV!$I","2322 734 61009L")
我也用 .Formula
试过了,但结果是一样的。
我在 Windows 7 中使用 Excel 2007。我是否遗漏了一些东西,因为它看起来都很好,只是工作不正常。谢谢。
使用宏录制器在空白测试中创建超链接sheet,我得到:
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"Sheet1!A1", TextToDisplay:="HL Here"
将其翻译成您的具体情况,我相信您应该:
wksUsersSheet.Hyperlinks.Add Anchor:=wksUsersSheet.Cells(lngRowNow, Commentary_Col), _
Address:="", _
SubAddress:="[" & strThisBooksName & "]" & strFoundMatchWorksheetName & "!" & _
strFoundMatchAddress, _
TextToDisplay:=rngReturnedMatchingPart.Value
根据您的评论试试这个:
将您的 strFoundMatchAddress
转换为行号和列号,我将它们称为 FoundMatchAddrRow
和 FoundMatchAddrCol
ActiveCell.FormulaR1C1 = "=HYPERLINK(" & Chr(34) & "[" & strThisBooksName & "]" & _
strFoundMatchWorksheetName & "!R[" & FoundMatchAddrRow & "]C[" & _
FoundMatchAddrCol & "],""" & _
rngReturnedMatchingPart.Value & """)"
请注意,使用 ""
会在最终字符串中生成一个 "
,并减少连接并消除对 Chr(34)
的需要。这不是必需的,但它确实减少了输入。