ich bastle schon seit längerem für unser Büro einige Berechnungstools via Basic die ausschliesslich in Calc-Dokumenten verwendet werden.
Nun ist mir folgendes aufgefallen: Ich ziehe mir Ausgangsdaten aus der Tabelle mittels .getDataArray, rechne einige Daten der Tabelle um und speichere sie mit .setDataArray wieder zurück. Wenn ich nun ein Spaltenarray der Sequenz bearbeite bin ich bis jetzt davon ausgegangen, dass ich das Spaltenarray danach wieder an das Zeilenarray zurückspeichern muss. Mit Schrecken hab ich nun aber festgestellt, dass das Zeilenarray geändert wird, wenn das Spaltenarray modifiziert wird.
Kleines Beispiel:
Code: Alles auswählen
PTab = ThisComponent.Sheets().getByName( "Punkte" )
ITab = ThisComponent.Sheets().getByName( "Protokoll" )
'Letzte Zeile finden
ICur = PTab.createCursor
ICur.GotoEndOfUsedArea(False)
eRow = ICur.getRangeAddress().endRow
'Bearbeitungsbereich einlesen
Bereich = PTab.getCellRangeByPosition(0, 2,14, 10 )
Punkte = Bereich.getDataArray
'Testschleife
For i = lBound(Punkte) to uBound(Punkte)
Redim Zeile()
Zeile = Punkte(i)
Zeile(0) = "neiiiiiiiiiiiin"
Next i
'zurückspeichern
Bereich.setDataArray(Punkte)
Code: Alles auswählen
Zeile(0) = "neiiiiiiiiiiiin"
Code: Alles auswählen
Punkte(i) = Zeile
Gibt es hier eine globale Einstellung die für dieses Verhalten verantwortlich sein kann oder darf ich nun einige hundert Seiten Quellcode durchgehen und an jeder einzigen Stelle meinen Fehler ausbügeln?
(Hab ich schon erwähnt, dass ich seit einigen Stunden damit beschäftigt bin meinen Kopf auf den Tisch zu donnern
