| Startseite | Inhalt
StarBasic / OpenOffice.org Basic FAQ
Fragen und Infos: starbasic@dannenhoefer.de

Zurück Vor |
| 7.1.5 Wie kann man die Zellen eines Ranges auswerten?
Es gibt zwei Wege. Über die Position im Arbeitsblatt oder die Position innerhalb des Ranges. Erstmal die Position innerhalb des Arbeitsblattes. Ein Zellrange besteht aus mehren Zellen in Zeilen und vielleicht Spalten. Diese lassen sich natürlich auch gezielt ansprechen und auch mit Hilfe von zwei Schleifen einzeln nacheinander anspechen. Eine Range hat unter der Rangeadresse die Eckpunkte des Ranges. Diese fragt man ab und lässt dann darüber eine verchachtelte For-Schleife laufen. oCalc = thisComponent oSheet = oCalc.sheets(0) oCellRange = osheet.getCellRangeByName("A1:B5") 'auslesen der Eckpunkte iErsteSpalte = oCellRange.rangeAddress.startColumn iErsteZeile = oCellRange.rangeAddress.startRow iLetzteSpalte = oCellRange.rangeAddress.EndColumn iLetzteZeile = oCellRange.rangeAddress.EndRow 'Schleife über die Zeilen im Sheet For i = iErsteZeile to iLetzteZeile For m = iErsteSpalte to iLetzteSpalte oCell=osheet.getCellByPosition(m,i) oCell.String=i next m next i Oder 'Schleife über die Zeilen im Range For i = 0 to iLetzteZeile-iErsteZeile For m = 0 to iLetzteSpalte-iErsteSpalte oCell=oCellRange.getCellByPosition(m,i) oCell.String=i next m next i In dem Beispiel ist die Range fest angegeben. Dann kann man natürlich die Schleife direkt über die Werte laufen lassen. Ideal ist die Lösung wenn man auf ein Markierung durch den Anwender reagieren will. oCellRange = osheet.getCurrentSelection() Dann muß aber vorher geprüft werden ob es bei der Selektion eine Zelle, ein Bereich oder mehrere Bereiche sind. Siehe Wie kann man prüfen ob Zellen oder Bereiche in der aktuellen Selektion sind? Der zweite Weg geht direkt über die Position innerhalb des Ranges. Dann erfolgt der Zugriff über Methode getCellByPosition die auch innerhalb eines Ranges zur Verfügung steht. Hier bei gehts es aber nur die relative Position. oCalc = thisComponent oSheet = oCalc.sheets(0) oCellRange = osheet.getCellRangeByName("A1:B5") oCell = oCellRange.getCellByPosition(0,0) Mit 0,0 erreicht man die erste Zelle, mit 0,1 die erste Zelle in der zweite Spalten usw.. Aufpassen muß man hiebei das eine falsche Zeilen oder Spaltenangabe, die außerhalb des gewählten Ranges liegen, kommt es zu einer Fehlermeldung. |
Seitenanfang |

2003 - 2009 von Michael Dannenhöfer |
Letzte Aktualisierung: 06.04.2009