设置超链接代码
我正在尝试设置VBA语法来在几个单元格中创build超链接。 这是我有它,但我得到一个debugging错误'无效的过程调用或参数'
这是我产生错误的语法
Public Sub AddHyperlinks() Dim ws As Worksheet, lastrow As Long, i As Long Set ws = ActiveSheet lastrow = Cells(Rows.Count, 2).End(xlUp).Row For i = 2 To lastrow ActiveSheet.Hyperlinks.Add Anchor:=ws.Cells(i, 3), Address:="", SubAddress:="'" & ws.Cells(i, 2).Value & "'!A1", TextToDisplay:=ws.Cells(i, 3) Next i End Sub
示例工作簿
示例工作簿
TextToDisplay确实需要是一个string。 使用CStr(转换为string)将照顾到这一点。
TextToDisplay:=CStr(ws.cells(i, 3))
进行更改后,将成功通过示例工作簿进行testing。
HyperLinks.Add的TextToDisplay
参数是typesVariant
。 这意味着当你用ws.Cells(i, 3)
传递一个Range
对象时,默认成员( .Value
)不会被调用。 这会导致无效参数错误,因为函数需要一个String
子types的Variant
。 您需要显式调用.Value
:
ws.Hyperlinks.Add Anchor:=ws.Cells(i, 3), Address:="", _ SubAddress:="'" & ws.Cells(i, 2).Value & "'!A1", _ TextToDisplay:=ws.Cells(i, 3).Value
请注意,当您使用命名参数时,您正在使用一个延迟绑定的早期界面的调用。 这个更好:
ws.Hyperlinks.Add ws.Cells(i, 3), vbNullString, "'" & ws.Cells(i, 2).Value & "'!A1", _ , ws.Cells(i, 3).Value