AW: Backslash bei Hyperlinks einfügen ?
06.11.2008 14:17:00
Christian
Also, hyperlinks die in einer Excel zelle stehen, bestehen grob gesagt aus 2 "dingen":
Einmal der Name, der nichts mit dem Hyperlink-Ziel zu tun haben muss.
Und andererseits die Addresse des Hyperlinks.
wenn z.B. in Zelle C8 des aktuellen Blattes ein Hyperlink auf einen Ordner zielt dann ändert man die Addresse so:
Sub hlinkaendern
Dim hlink As String
hlink = Range("C8").Hyperlinks.Item(1).Address
If InStr(1, Right(hlink, 4), ".") = 0 Then hlink = hlink & "\"
Range("C8").Hyperlinks.Item(1).Address = hlink
End Sub
Wenn in der Zelle C8 KEIN Ordner sondern eine Datei als Ziel angegeben ist, dann fügt das makro dort kein backslah ein.
Was man aber NICHT sieht ist, dass er den Namen des Hyperlinks nicht ändert.
d.h. wenn man in der Zelle "C:\Eigene Dateien" stehen hat, wird man nach der änderung KEIN "C:\Eigene Dateien\" vorfinden sondern nach wie vor "C:\Eigene Dateien". Schaut man aber im Kontext des Zelle nach dem Ziel des Hyperlinks sieht man das korrekte ergebnis "C:\Eigene Dateien\".
Wenn man zusätzlich den angezeigten Text des hyperlinks ändern möchte muss man eine zeile hinzufügen und das sieht dann so aus:
Sub hlinkaendern()
Dim hlink As String
hlink = Range("C8").Hyperlinks.Item(1).Address
If InStr(1, Right(hlink, 4), ".") = 0 Then hlink = hlink & "\"
Range("C8").Hyperlinks.Item(1).Address = hlink
Range("C8").Hyperlinks.Item(1).TextToDisplay = hlink
End Sub
Hyperlinks sind ein bischen kompliziert, aber durchschaubar ;-)