Wie komme ich an den Hyperlink?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Wie komme ich an den Hyperlink?

Re: Wie komme ich an den Hyperlink?

von Stephan » Mo, 23.07.2012 11:11

Angelegt habe ich die Funktion bei Makro, das ist soweit richtig, oder?
anhängend eine Beispieldatei zur Verwendung der Funktion.



Gruß
Stephan
Dateianhänge
hyperlinks.ods
(9.85 KiB) 27-mal heruntergeladen

Re: Wie komme ich an den Hyperlink?

von Karolus » Mo, 23.07.2012 10:55

Hallo

Kopiere den Bereich mit den Hyperlinks in die Nachbarspalte, markiere diesen Bereich, und starte folgendes:

Code: Alles auswählen

Sub get_urls

sel = thisComponent.CurrentSelection
rowsize = sel.Rows.Count -1
colsize = sel.Columns.Count -1

for c = 0 to colsize
	for r = 0 to rowsize
		cell = sel.getCellByPosition( c, r )
		on Error goto skip ' Zellen ohne Hyperlink überspringen
		url = cell.createTextCursor.Text.getTextFields().getByIndex(0).url
		cell.setString(url)
		skip:
	next r
next c

End Sub
Karo

Re: Wie komme ich an den Hyperlink?

von Stephan » Mo, 23.07.2012 10:40

Es geht natürlich um eine Liste mit hunderten Links
dann verwende z.B. eine benutzerdefinierte Funktion, beispielsweise:

Code: Alles auswählen

Function isohyp(Tabellenname As String, Zellname As String)
	akt_zelle = ThisComponent.Sheets(Tabellenname).getCellRangeByName(Zellname)
	tmp = akt_zelle.getText().createEnumeration()
	Do While tmp.hasMoreElements()
		tmp_next = tmp.nextElement()
		tmp_akt = tmp_next.createEnumeration()
		Do While tmp_akt.hasMoreElements()
			eintrag = tmp_akt.nextElement()
			If eintrag.TextPortionType = "TextField" Then
				If eintrag.TextField.supportsService("com.sun.star.text.TextField.URL") Then
					isohyp = eintrag.TextField.URL
				End If
			End If
		Loop
	Loop
End Function

und rufe sie in einer Tabellenzelle mittels beispielsweise:

=ISOHYP("Tabelle1"; "A1")
oder:
=ISOHYP("Tabelle1"; "A" & ZEILE())

auf.


Gruß
Stephan

Nach oben