Parameterübergabe an selbstdefinierte Funktion

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

Moderator: Moderatoren

Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Parameterübergabe an selbstdefinierte Funktion

Beitrag von Stephan »

Hallo,

Es ist kein Problem eine selbstdefinierte Funktion für ein calc-Dokument zu schreiben, bei welcher ich einzelne Zellen als Parameter angebe, aber wie kann ich einen übergebenen Zellbereich auswerten?

Beispiel:

Code: Alles auswählen

function ABC(a,b,c,d)
A(0)=a
A(1)=b
A(2)=c
A(3)=d
'weitere Berechnungen
'...
end function
und aufrufen im Tabellenblatt mit:

=ABC(A1;A2;A3;A4)

aber wie formuliere ich die Funktion wenn ich sie im Tabellenblatt so aufrufen will:

=ABC(A1:A4)



Gruß
Stephan
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hallo Stefan,
aber wie formuliere ich die Funktion wenn ich sie im Tabellenblatt so aufrufen will:
=ABC(A1:A4)
Nun, da du als Ergebnis den Zellbereich sicher weiterverarbeiten willst, benötist du ihn doch sowieso als "String". Die einfachste Variante ist dann:

Code: Alles auswählen

function ABC(a)
msgbox a
end function
und der Zellaufruf : =ABC("A4:A8")

Jetzt kannst du die Zellrange direkt weiterverwenden.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Hallo Thomas,

Ja danke - aber das war mir klar.
Ich bin jetzt etwas mäklig, aber mein Ziel ist das sich der Inhalt in der Zelle in welcher meine Funktion steht automatisch ändern soll wenn sich der Inhalt einer der Zellen im Zellbereich ändert und das geht nicht, wenn ich die Parameter als String übergebe...Oh gerade fällt mir etwas ein:

=ABC( "A4:A8";A4:A8 )

könnte vielleicht gehen, muß ich gleich mal ausprobieren.

Übrigens bezieht sich diese Anfrage auf einen Thread im Calc-Forum, wo ich in einer Funktion (bisher) 36 Zellen als "einzelne" Parameter übergebe.
viewtopic.php?t=1414

Gruß
Stephan
Antworten