VBA在每一行添加超链接?

我正在使用下面的代码来尝试将列I中的每个文本值转换为超链接?

代码在整段代码中产生一个types不匹配的错误:

.Hyperlinks.Add Anchor:=C.Address, _ Address:="\\Gb-ss04\001_data\QUALITY ASSURANCE\03_AUDITS\01 Lidl Standard\c Results\WG " & Left(Range("I" & C.Row), 2) & "\" & Range("O" & C.Row).Value, _ ScreenTip:=Range("O" & C.Row).Value, _ TextToDisplay:=Range("O" & C.Row).Value 

请有人告诉我我要去哪里错了吗?

码:

 Sub Add() Dim C As Range With ActiveSheet For Each C In .Range("O10:O" & .Range("O" & .Rows.Count).End(xlUp).Row) .Hyperlinks.Add Anchor:=C.Address, _ Address:="\\Gb-ss04\001_data\QUALITY ASSURANCE\03_AUDITS\01 Lidl Standard\c Results\WG " & Left(Range("I" & C.Row), 2) & "\" & Range("O" & C.Row).Value, _ ScreenTip:=Range("O" & C.Row).Value, _ TextToDisplay:=Range("O" & C.Row).Value Next C End With End Sub 

很接近。 正如这里logging的https://msdn.microsoft.com/en-us/library/office/ff822490.aspx锚点需要是一个对象。 您现在指向C范围variables(一个string)的地址,而不是C范围本身。 删除“。地址”,你应该很好去。

 Sub Add() Dim C As Range With ActiveSheet For Each C In .Range("O10:O" & .Range("O" & .Rows.Count).End(xlUp).Row) .Hyperlinks.Add Anchor:=C, _ Address:="\\Gb-ss04\001_data\QUALITY ASSURANCE\03_AUDITS\01 Lidl Standard\c Results\WG " & Left(Range("I" & C.Row), 2) & "\" & Range("O" & C.Row).Value, _ ScreenTip:=Range("O" & C.Row).Value, _ TextToDisplay:=Range("O" & C.Row).Value Next C End With End Sub