2017-05-18 7 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

どのようなエラーが表示されますか? 'のための'のエラーのように見えます。 – 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

関連する問題