返回列表 上一主題 發帖

請問要如何自動在每一個地址上加入Google地圖連結,且字型顏色皆不會變,謝謝您!

回復 1# peter460191
試試看
  1. Sub TEST()
  2.     Dim r As Long, x
  3.    
  4.     With Sheets("Sheet1")
  5.         r = .Cells(.Rows.Count, "A").End(xlUp).Row
  6.         If r > 1 Then
  7.             For Each x In .Range("A2:A" & r)
  8.                 .Hyperlinks.Add Anchor:=x, Address:="http://maps.google.com.tw/maps?q=" & x.Value
  9.             Next
  10.             .Range("A2:A" & r).Style = "Normal"
  11.         End If
  12.     End With
  13. End Sub
複製代碼

TOP

回復 4# peter460191
2# 地址的位置是抓A2到A欄最後一筆
如果你要明確指定區域,改成下面這樣就是指定A2到A10
  1. Sub TEST()
  2.     Dim x
  3.    
  4.     With Sheets("Sheet1").Range("A2:A10")
  5.         For Each x In .Cells
  6.             .Parent.Hyperlinks.Add Anchor:=x, Address:="http://maps.google.com.tw/maps?q=" & x.Value
  7.         Next
  8.         .Style = "Normal"
  9.     End With
  10. End Sub
複製代碼

TOP

回復 9# peter460191
隨儲存格內的地址變動,而地圖超連結也立即跟著變動嗎?

這樣就是和5#一樣,寫在 Change 事件中,
稍微改了一下,若還是不行請上傳附件。
  1. '    請放置在 "工作表1" 程式區內。
  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3.     Dim x, addrChange
  4.    
  5.     Application.EnableEvents = False
  6.     Application.ScreenUpdating = False
  7.    
  8.     Set addrChange = Intersect(Target, Range("A2:A10"))
  9.     If Not addrChange Is Nothing Then
  10.         For Each x In addrChange
  11.             If x.Value <> "" Then
  12.                 Hyperlinks.Add Anchor:=x, Address:="http://maps.google.com.tw/maps?q=" & x.Value
  13.                 x.Style = "Normal"
  14.             End If
  15.         Next
  16.     End If
  17.    
  18.     Application.ScreenUpdating = True
  19.     Application.EnableEvents = True
  20. End Sub
複製代碼

TOP

回復 13# peter460191
執行結果你可以自行嘗試比較看看就知道了。
至於執行效率會不會影響,這要看你的地址是如何"隨機生成",
除非地址內容常常會400個、400個變動,又或者
其他VBA程式中常常去變動那些地址,
否則應該影響不大。

當然,自行備分後嘗試比較看看是最清楚的。

TOP

回復 16# av8d
加一function
  1. Function encodeURL(str As String)
  2.     With CreateObject("ScriptControl")
  3.         .Language = "JScript"
  4.         .AddCode "function encode(str) {return encodeURIComponent(str);}"
  5.         encodeURL = .Run("encode", str)
  6.     End With
  7. End Function
複製代碼
9樓改為
Hyperlinks.Add Anchor:=x, Address:="http://maps.google.com.tw/maps?q=" & encodeURL(x.Value)

這樣試試
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題