Hyperlinks absolut und aufs Dokument bezogen

30/11/2012 - 10:02 von Jochen Walerka | Report spam
Hallo,

ich habe eine Datei mit Hyperlinks, die relative Pfadbezüge enthalten. Die wurden nun hàndisch auf absolut umgestellt - einerseits über das Setzen der Hyperlinkbasis auf "\\" und andererseits durch Wegklicken der Option "Hyperlinks beim Speichern aktualisieren"
Nun gibts aber im Dokument HL-Bezüge _innerhalb_ der Datei, die allergisch auf die "\\"-Basis reagieren. Also nehme ich die Basis wieder raus und alles wàre wunderbar - aber sobald ich neue, externe HL-Bezüge setze, dann stimmen die wieder nicht, weil sie in relative umgesetzt werden. Es wàre doch eine Zumutung, bei jeder Änderung die Basis zu setzen und wieder zu löschen...
Habe nur ich diesen Widerspruch und gibt es da Abhilfe?

Jo
 

Lesen sie die antworten

#1 Claus Busch
30/11/2012 - 10:19 | Warnen spam
Hallo Jochen,

Am Fri, 30 Nov 2012 01:02:10 -0800 (PST) schrieb Jochen Walerka:

ich habe eine Datei mit Hyperlinks, die relative Pfadbezüge enthalten. Die wurden nun hàndisch auf absolut umgestellt - einerseits über das Setzen der Hyperlinkbasis auf "\\" und andererseits durch Wegklicken der Option "Hyperlinks beim Speichern aktualisieren"
Nun gibts aber im Dokument HL-Bezüge _innerhalb_ der Datei, die allergisch auf die "\\"-Basis reagieren. Also nehme ich die Basis wieder raus und alles wàre wunderbar - aber sobald ich neue, externe HL-Bezüge setze, dann stimmen die wieder nicht, weil sie in relative umgesetzt werden. Es wàre doch eine Zumutung, bei jeder Änderung die Basis zu setzen und wieder zu löschen...
Habe nur ich diesen Widerspruch und gibt es da Abhilfe?



ein interner Hyperlink hat keine Adresse, er hat nur eine Subadresse.
Wenn du nun die Adresse komplett wechselst, sind die internen Hyperlinks
defekt. Probiere es mit einem Makro, das zuerst einmal testet, ob eine
Adresse vorhanden ist und wenn ja diese ersetzt und die internen
Hyperlinks unberücksichtigt làsst.
Du muss in dem Code den String der durch "\\" ersetzt werden soll auf
deine Bedürfnisse hin anpassen. Im Moment sucht er den letzten Backslash
und ersetzt alles davor durch "\\"

Sub Hyperlinks()
Dim hyp As Hyperlink
Dim Start As Integer
Dim strPfad As String

For Each hyp In ActiveSheet.Hyperlinks
If hyp.Address <> "" Then
Start = InStrRev(hyp.Address, "\")
strPfad = Left(hyp.Address, Start)
hyp.Address = Replace(hyp.Address, strPfad, "\\")
End If
Next
End Sub


Mit freundlichen Grüßen
Claus Busch
Win XP Prof SP3 / Vista Ultimate SP2
Office 2003 SP3 /2007 Ultimate SP3

Ähnliche fragen