Hi,
Mein Problem:
FUNCTION schicht_type(pointer AS INTEGER, enable AS INTEGER) AS DOUBLE
Dim sheet AS OBJECT
IF pointer = 0 THEN
schicht_type = 0
EXIT FUNCTION
END IF
IF enable = 0 THEN
schicht_type = 0
EXIT FUNCTION
END IF
MyDoc = ThisComponent
sheet = MyDoc.getSheets().getByIndex(0)
sheet.getCellByPosition(0,40).setValue(23.0)
Tabelle3 = MyDoc.getSheets().getByIndex(2)
schicht_type = Tabelle3.getCellByPosition(9,pointer).Value
END FUNCTION
Diese Funktion wird von einer Zelle auf Tabelle1 (Sheet 0 ) aufgerufen:
=SCHICHT_TYPE(F64;F51)
alles funktioniert bis auf die Zeilen:
sheet = MyDoc.getSheets().getByIndex(0)
sheet.getCellByPosition(0,40).setValue(23.0)
ändere ich nun diese Zeilen in:
sheet = MyDoc.getSheets().getByIndex(1)
sheet.getCellByPosition(0,40).setValue(23.0)
funktioniert der Code, aber leider kann ich mit der 23 auf Sheet 1 nix anfangen
nur zur Klarstellung die 23.0 wird später durch eine Variable ersetzt und die Zellposition auch. Es wird aber weiterhin auf Sheet 0 geschrieben.
Dies ist nur ein Test-Code.
Gruß
Dirk-Uwe
BASIC Wie beschreibe ich eine Zelle ....
Moderator: Moderatoren
Hallo Dirk-Uwe,
wie man die Funktion anders formulieren kann weiß ich noch nicht, Ursache für die Fehlfunktion ist jedoch, meiner Meinung nach, das die Funktion von Tabelle1 aufgerufen ist und OOo bei:
getByIndex(0)
der Meinung ist: Warum soll ich mir Tabelle1 "schnappen" ich bin doch schon in Tabelle1. Ich weiß nicht ob das nun unbedingt so realisiert sein muß wie Du es bisher angedacht hast.
Falls ja, mache Dir eine weitere Tabelle, kopiere die Formel dahinein, also:
=SCHICHT_TYPE(Tabelle1.F64;Tabelle1.F51)
und blende diese zusätzliche Tabelle einfach aus. So funktioniert es zumindestens schonmal.
Gruß
Stephan
wie man die Funktion anders formulieren kann weiß ich noch nicht, Ursache für die Fehlfunktion ist jedoch, meiner Meinung nach, das die Funktion von Tabelle1 aufgerufen ist und OOo bei:
getByIndex(0)
der Meinung ist: Warum soll ich mir Tabelle1 "schnappen" ich bin doch schon in Tabelle1. Ich weiß nicht ob das nun unbedingt so realisiert sein muß wie Du es bisher angedacht hast.
Falls ja, mache Dir eine weitere Tabelle, kopiere die Formel dahinein, also:
=SCHICHT_TYPE(Tabelle1.F64;Tabelle1.F51)
und blende diese zusätzliche Tabelle einfach aus. So funktioniert es zumindestens schonmal.
Gruß
Stephan
Hallo,
Ich habe diesen Vorfall OpenOffice gemeldet.
Sie führen ihn als Issue 31627.
Aber sie sagen, daß dieses Verhalten so gewünscht ist, macht ja auch Sinn, denn wenn sich eine Zelle bei der Neuberechnung einer Seite ändert, mit welchem Wert soll gerechnet werden? Dem Alten oder dem Neuen?
Schade ist nur, daß BASIC keine Fehler- oder Warnmeldung ausgibt. Es ignoriert einfach die Anweisung
Gruß
Dirk-Uwe
Ich habe diesen Vorfall OpenOffice gemeldet.
Sie führen ihn als Issue 31627.
Aber sie sagen, daß dieses Verhalten so gewünscht ist, macht ja auch Sinn, denn wenn sich eine Zelle bei der Neuberechnung einer Seite ändert, mit welchem Wert soll gerechnet werden? Dem Alten oder dem Neuen?
Schade ist nur, daß BASIC keine Fehler- oder Warnmeldung ausgibt. Es ignoriert einfach die Anweisung
Gruß
Dirk-Uwe