2016-12-16 18 views
0

我的代碼的作用在於用戶輸入,然後根據用戶輸入到單元中的內容自動創建超鏈接。如何將我的VBA代碼應用於一系列單元格?

如果用戶在hello中鍵入單元格,則會創建一個超鏈接並鏈接到www.google.com/hello

每個單元格都會有不同的輸入,所以我的範圍從hello延伸到其他用戶輸入至關重要。

我只有一個單元格可以工作,但是當我嘗試跨越多個單元格時,出現錯誤匹配錯誤,我懷疑這是由於我引用單元格錯誤或其他原因。

這裏是我的代碼:

Sub automaticHyperlink() 

Dim link As String 

link = "http://www.google.com/" & Range("F2") 

Range("F2").Hyperlinks.Add Range("F2"), link 

End Sub 

當我改變所有區域引用從F2F2:F4,然後我得到一個錯誤。

我的問題是,如何正確地將此代碼應用於多個單元格範圍而不會產生錯誤?

有任何問題,請讓我知道。

謝謝。

回答

2

首先,我建議把你想要顯示的文字作爲自己的字符串。然後,簡單地循環你的範圍。

Sub automaticHyperlink() 

Dim link As String, dispText As String 
Dim cel As Range 
Dim lastRow as Long 

lastRow = Cells(rows.count,6).End(xlup).Row 

For Each cel In Range("F2:F" & lastRow) 
    dispText = cel.value 
    link = "http://www.google.com/" & dispText 
    cel.Hyperlinks.Add anchor:=cel, Address:=link, TextToDisplay:=dispText 
Next cel 

End Sub 
+0

顯示的文字應該是用戶輸入的。每個單元格將有不同的輸入,因此引用一個單元格將不起作用。當我嘗試將範圍設置爲整列F列時,出現錯誤匹配錯誤。 – juiceb0xk

+0

@ juiceb0xk - 查看我的編輯。另外,我不建議做'Range(「F:F」)',因爲這可能會花費很長時間並且可能會拋出錯誤。相反,我建議找到最後一行,就像我在編輯的代碼中一樣。 – BruceWayne

+0

這真棒,用VBA學習很多,非常感謝。 – juiceb0xk

相關問題