我希望能夠用VBA寫入程序讓滑鼠指定到A1的儲存格的時候能出現白色小手的功能,且以點擊的作用進行跳到連結的位置,而不是選擇該範圍,這該如何寫呢?
雖然這個vba寫法會圈選A8儲存格,但不是我要的
Sheets("工作表1").Select
Range("A1").Select
Application.Goto Reference:="R8C1"
請問有辦法寫入VBA讓可以用類似Hyperlink的方式連結而不是Select嗎?
你可以使用Worksheet物件的Hyperlinks.Add方法來建立一個點擊鏈接,讓其在點擊時跳到指定的儲存格。 以下是一個範例的VBA程式碼:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:="Sheet1!A8", TextToDisplay:="跳轉"
End If
End Sub
這段程式碼在工作表的SelectionChange事件中進行觸發。 當鼠標指定到A1單元格時,它將創建一個名為"跳轉"的鏈接,當點擊這個鏈接時,它將跳到Sheet1工作表中的A8單元格。
請注意,你需要將程式碼中的"Sheet1"和"A8"更改為你實際想要跳轉的工作表和儲存格。
這個怎麼應用,我試不出來
其實也不用寫程式啦~你可以用超連結設定
你寫不出來的最大可能是因為你寫錯地方。
我不是想在A1加入一個超連結,而是其實我在A1有建立一個公式
=HYPERLINK("#sheet1!c"&MATCH(B1,sheet1!$C:$C,1),"跳轉")
我想用vba 來按A1 但是可以介由A1的函數來跳到指定的地方
又或者有沒有辦法用VBA直接寫一個公式HYPERLINK("#sheet1!c"&MATCH(B1,sheet1!$C:$C,1),"跳轉")
直接跳呢?
簡單來說 A1 要可以輸入你要跳轉的目標。
輸入完後點下去後,跳到你要的目標?
這樣的話,我回答的VBA還是可以做到,但是你要自己改。
意思其實差不多,就是你要改成 目標地=你的a1,跳轉詞也=a1
但你這樣如果要重新輸入會比較麻煩,因為點擊上去就會一直跳轉
其實比較好的情況是,你a1 輸入值,b1 根據a1建立超連結
直接幫你修改好了,這個寫法就是你只要在a1輸入任意"數字",就會跳轉到a欄的任意位置。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim cell As Range
Set cell = Range("$A$1")
Dim cellValue As String
cellValue = cell.Value
Dim hyperlinkAddress As String
hyperlinkAddress = "Sheet1!A" & cellValue
ActiveSheet.Hyperlinks.Add Anchor:=cell, Address:="", SubAddress:=hyperlinkAddress, TextToDisplay:=cellValue
End If
End Sub
這個寫法是,你在a1輸入 欄位+列值 EX:D20。
B2就會建立超連結,點下去就會跳轉
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim linkCell As Range
Set linkCell = Sheets("Sheet1").Range("B1")
linkCell.Hyperlinks.Add Anchor:=linkCell, Address:="", SubAddress:=Target.Value, TextToDisplay:="Jump"
End If
End Sub
Range("A1").Select
ActiveCell.FormulaR1C1 = "點擊A1時跳儲存格A8"
Range("A1").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"工作表1!A8", TextToDisplay:="點擊A1時跳儲存格A8"
你是要產生超連結吧!
我不是想加入超連結,我希望可以不要用.Select
但點選時可以跳到我要的儲存格
有其它的可以取代嗎?
我不太明白你的問題,你是指哪個SELECT
Range("A1").Select <<<< 他嗎?
對,有沒有辦法不要用Select
Range("A1").Select
改成其它的指令讓它變成點擊的方式去跳過去指定的位置
ActiveSheet.Range("A1").Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"工作表1!A8", TextToDisplay:="點擊A1時跳儲存格A8"
那你就在宣告連結的時候把它指定位子就好啊!
我不是想在A1加入一個超連結,而是其實我在A1有建立一個公式
=HYPERLINK("#sheet1!c"&MATCH(B1,sheet1!$C:$C,1),"跳轉")
我想用vba 來按A1 但是可以介由A1的函數來跳到指定的地方
又或者有沒有辦法用VBA直接寫一個公式HYPERLINK("#sheet1!c"&MATCH(B1,sheet1!$C:$C,1),"跳轉")
直接跳呢?
問題有解決了嗎?
可能是我的語意沒寫好沒辦法傳達到我的意思
其實我是想要用vba來執行時,可以籍由儲存欄中的函數來跳躍
但是關鍵的動作都得用滑點來點擊才能做到
也就是即使上列的方式其實都無法達到
闗鍵可能是這個滑點來點擊也許沒法取代吧