2017-05-18 4 views
0

Ich verwende den folgenden Code, um zu versuchen, jeden Textwert in Spalte I zu einem Hyperlink zu konvertieren?VBA Hyperlink für jede Zeile hinzufügen?

Der Code erzeugt einen Fehler Type Mismatch auf dem gesamten dieses Stück Code:

.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 

Bitte kann mir jemand zeigen, wo ich falsch gehe?

Code:

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

Welchen Fehler bekommen Sie? sieht aus wie theres ein Fehler in der 'für jedes C ... ' – krib

+0

@ krib Typ Mismatch Fehler wie pro Frage – user7415328

Antwort

1

Ganz in der Nähe. Wie hier dokumentiert https://msdn.microsoft.com/en-us/library/office/ff822490.aspx muss der Anker ein Objekt sein. Sie zeigen jetzt auf die Adresse der C-Bereich-Variable (eine Zeichenfolge) anstelle des C-Bereichs. Entfernen Sie die ". Adresse" und Sie sollten gut gehen.

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

ausgezeichnete funktioniert wie ein Charme. Vielen Dank – user7415328

Verwandte Themen