2017-05-18 211 views
0

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

的代码产生一个错误类型不匹配整个这段代码对:

.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 
+0

你得到了什么错误?看起来像theres错误在每个C ...' – krib

+0

@ krib类型不匹配错误根据问题 – user7415328

回答

1

非常接近。正如这里记录的https://msdn.microsoft.com/en-us/library/office/ff822490.aspx锚点需要成为一个对象。您现在指向C范围变量(一个字符串)的地址,而不是C范围本身。 删除“.Address”,你应该很好去。

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 
+0

优秀的作品像一个魅力。谢谢 – user7415328