使用公式生成超链接时,VBA打开Excel超链接不起作用

Ste*_*eve 4 excel vba formula hyperlink excel-vba

使用公式生成的Excel超链接似乎存在错误.我正在使用Excel 2010.我有一个包含URL的单元格的电子表格,我的目标是执行以下两项操作:

  1. 将这些单元格转换为超链接.
  2. 创建一个键盘快捷方式来打开这些超链接,这样我就不必使用鼠标了.

做#1,最初我只是使用了这个功能=HYPERLINK().所以,我的网址在列中A,我使用这个公式在列中创建超链接B.

为了做#2,我创建了以下宏,它应该用键盘快捷键Ctrl+ 打开超链接H:

Sub Open_Hyperlink()
'
' Open_Hyperlink Macro
'
' Keyboard Shortcut: Ctrl+h
'
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub
Run Code Online (Sandbox Code Playgroud)

问题是这个宏似乎只适用于不使用公式创建的超链接.例如,如果我只是键入一个单元格http://www.google.com,Excel将自动使这个超链接和键盘快捷方式宏工作,其中它不与公式生成的超链接.

我还注意到,当我右键单击公式生成的超链接时,下拉菜单中没有选项可以打开超链接,但右键单击非公式生成的超链接时有选项.

我发现了以下解决方法.我没有使用公式生成超链接,而是使用了我在这里找到的宏.

Sub HyperAdd()

'Converts each text hyperlink selected into a working hyperlink

For Each xCell In Selection
    ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=xCell.Formula
Next xCell

End Sub
Run Code Online (Sandbox Code Playgroud)

我可以使用键盘快捷键打开使用此宏生成的超链接.我想知道是否有人有或有类似的问题,为什么公式生成的超链接不适合我.我希望将来使用公式来制作超链接,因为它更简单,所以如果有人知道避免使用宏来制作超链接的方法,我真的很感激.

Pet*_* L. 5

我想知道是否有人有类似的问题,为什么公式生成的超链接对我不起作用.

唉,这似乎是一个痛苦的事实:Excel不会添加到Hyperlinks集合公式生成的链接 - 下面是调试器的屏幕,指向=HYPERLINK("http://www.google.com/";"Google"):

Cell Hyperlinks集合

我不确定这是故意的实现还是错误,但是,公式生成的链接可能无法使用Hyperlinks().Follow方法打开.

但是,如果您打算使用键盘快捷方式打开链接,只需使用以下代码 - 它将自动转换为可点击链接选定的单元格文本并打开它:

Sub Open_Hyperlink()
    Selection.Hyperlinks.Add Anchor:=Selection, Address:=Selection.Formula
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub
Run Code Online (Sandbox Code Playgroud)

只需分配任何快捷方式,您就可以开始了.以下是示例:https://www.dropbox.com/s/d4cie7lun22quma/FollowLinks.xlsm

希望这在某种程度上有所帮助.祝好运!