2016-12-16 17 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

相关问题