[HILFE] Fehlererzeugung durch Makro

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

drbrode
**
Beiträge: 40
Registriert: Di, 29.11.2016 14:10

[HILFE] Fehlererzeugung durch Makro

Beitrag von drbrode »

Hallo,
vielleicht kann mir jemand bei folgendem Problem helfen.

Ich habe in calc eine eigene Funktion definiert, die es mir erlaubt, Textabschnitte zu trennen und separat ausgeben zu lassen.

Code: Alles auswählen

function TXTDIV (Txt, Trennzeichen, Position)

	on error goto Fehler
	
	myTextArray = split(Txt, Trennzeichen)
	TXTDIV = myTextArray(Position - 1)

	goto Ende

	Fehler:	
		TXTDIV = ???

	Ende:

end function
Wenn die Variable "Position" nun die Dimension des erzeugten Arrays übersteigt, soll der Fehler #NV ausgegeben werden. Ist das möglich und wenn ja wie? Die einfache Ausgabe von #NV als Text wird in der Zelle nicht als Fehler erkannt.

Und noch eine weitere kniffligere Fage. (Ich hoffe ich drücke mich verständlich aus.) Ist es möglich, aus der laufenden Funktion heraus auf die Zelle zuzugreifen, welche die Funktion aufgerufen hat? Wenn Makros über Steuerelemente aufgerufen werden gibt es hierfür ja den Action.Listener (ich glaube das heißt so). Gibt es sowas ähnliches auch bei dem Aufruf von selbst definierten Funktionen?

Vielen Dank für eure Hilfe!
Karolus
********
Beiträge: 7425
Registriert: Mo, 02.01.2006 19:48

Re: [HILFE] Fehlererzeugung durch Makro

Beitrag von Karolus »

Hallo

Code: Alles auswählen

function txtsplit(Txt, Trennzeichen, Position)	
    textarray = split(Txt, Trennzeichen)
    if ubound(textarray) < (position-1) then
        txtsplit = ""
        exit function
    end if		
    txtsplit = TextArray(Position - 1)
end function
und die führst du aus per:

Code: Alles auswählen

=WENN(TXTSPLIT(A13;" ";7)="";NV();TXTSPLIT(A13;" ";7))

@knifflig: Nein, der Zugriff auf die Zelle wird während derFunctionausführung geblockt!
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
drbrode
**
Beiträge: 40
Registriert: Di, 29.11.2016 14:10

Re: [HILFE] Fehlererzeugung durch Makro

Beitrag von drbrode »

Hallo Karolus,

vielen Dank für deinen Vorschlag!

Ist zwar nicht so direkt, wie von mir erhofft aber scheint ein zweckdienlicher workaround zu sein. Ich werde das nächste Woche gleich mal ausprobieren.

Viele Grüße und ein schönes WE
drbrode
**
Beiträge: 40
Registriert: Di, 29.11.2016 14:10

Re: [HILFE] Fehlererzeugung durch Makro

Beitrag von drbrode »

Soooo, das funktioniert prinzipiell schon, ist aber doch recht umständlich zu handhaben, da der Fehler nicht von der Funktion selbst ausgegeben wird.

Vielleicht weiß jemand noch einen anderen (direkten) Weg...?
Antworten