Warum kann ich keinen Wert in eine Zelle schreiben?

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

Moderator: Moderatoren

Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Warum kann ich keinen Wert in eine Zelle schreiben?

Beitrag von Toxitom »

Hey Stefan,
...Warum ist das so?...
Weil während des Ausführens von benutzerdefinierten Formeln die Tabellenblätter komplett gesperrt sind - und du lediglich in die Zelle, welche die Funktion ausführt, einen Rückgabewert schreiben kannnst (wobei dieser ja gar nicht geschrieben wird, sondern nur dort "angezeigt" wird - als Ergebnis der Formel.

Du versuchst aber, in eine "dritte" Zelle zu schreiben - das geht nicht, da blockiert.
Das Verhalten hat auch durchaus einen Sinn, du könntest nämlich sonst schnelle rekursive Schleifen schreiben, die das System zum Absturz bringen.
z.B. in Zelle a1 die Formel "=meineFunktion(A2)", und die Funktion schreibt dann in die Zelle A2 z.B. Übergabe-Wert +1 - das wäre eine Endlosschleife und führt letztendlich zum Absturz und zu Instabilität.

Also: Mit benutzerdefinierten Funktionen kannst du nicht in Zellen schreiben! Lediglich einen Rückgabewert in der aktuellen Zelle anzeigen.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Warum kann ich keinen Wert in eine Zelle schreiben?

Beitrag von Toxitom »

Hey Stefan,

schreib dir einen Listener - der überwacht die Änderungen der Zelle (Modify_listener) - und wenn sich etwas tut, startet er ein Makro. - Und das kann dann in die Zellen schreiben.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten