使用Hyperlink生成超链接时,超链接属于Sheet,不属于单元格,所以运行代码时,报错【运行时错误‘9’ 下标越界】
以下代码,请安排在模块中
当然你需要设法运行myOnkey以便使设置的快捷键生效。这里我假设设置的快捷键是Alt+x(你可以随时运行clearOnkey取消快捷键)
Sub myOnkey()
Application.OnKey "%x", "myClick"
End Sub
Sub clearOnkey()
Application.OnKey "%x"
End Sub
Sub myClick()
On Error Resume Next
Selection.Hyperlinks(1).Follow NewWindow:=True
If Error = "" Then Exit Sub
On Error GoTo 0
Dim hyperText As String
hyperText = StrConv(Selection.Formula, vbLowerCase)
If InStr(hyperText, "http://") = 0 Then Exit Sub
hyperText = Mid(hyperText, InStr(hyperText, "http://"), InStr(hyperText, ",") - InStr(hyperText, "http://") - 1)
ActiveSheet.Hyperlinks.Add anchor:=Selection, Address:=hyperText
Selection.Hyperlinks(1).Follow
Selection.Hyperlinks(1).Delete
End Sub
myClick代码会先尝试有没有手工输入的链接,如果能正确执行就结束,如果不能,尝试取得公式,如果公式中没有”http://“(你可以自己定义你自己的超链接关键字符串),也会结束,否则,会按照hyperlink函数的结构取得超链接,并为Selection临时添加超链接并执行Follow方法,执行后删除添加的超链接
以上请测试
祝你顺利