使用Hyperlink生成超連結時,超連結屬於Sheet,不屬於單元格,所以執行程式碼時,報錯【執行時錯誤‘9’ 下標越界】
以下程式碼,請安排在模組中
當然你需要設法執行myOnkey以便使設定的快捷鍵生效。這裡我假設設定的快捷鍵是Alt+x(你可以隨時執行clearOnkey取消快捷鍵)
Sub myOnkey()
Application.OnKey "%x", "myClick"
End Sub
Sub clearOnkey()
Application.OnKey "%x"
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
myClick程式碼會先嚐試有沒有手工輸入的連結,如果能正確執行就結束,如果不能,嘗試取得公式,如果公式中沒有”http://“(你可以自己定義你自己的超連結關鍵字串),也會結束,否則,會按照hyperlink函式的結構取得超連結,併為Selection臨時新增超連結並執行Follow方法,執行後刪除新增的超連結
以上請測試
祝你順利
使用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方法,執行後刪除新增的超連結
以上請測試
祝你順利