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.

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.