Hallo,
> -----Original Message-----
> From: Wolfgang Jäth [mailto:[email protected]]
> Sent: Saturday, June 27, 2020 1:12 PM
> To: [email protected]
> Subject: Re: [Basic] getCellRangeByName & Teilbereich ausschließen
> > Ich kann Dir hingegen nicht sagen, wie Du von "M2:X13" den
> Bereich "M2:O4" quasi abziehst, weil es zwar die Methode
> .removeRangeAddress gibt, aber es bei mir zu einem Fehler
> führt wenn ich versuche von einem CellRange-Objekt ein (quasi
> beinhaltetes) CellRange-Objekt 'abzuziehen' - augenscheinlich
> wird ein passendes CellRange*s*-Objekt erwartet.
>
> Über die Funktion bin ich auch gestolpert, aber wenn ich die
> Beschreibung dazu richtig verstanden habe, entfernt das die Zellen
> direkt aus dem Tabellenblatt, so wie "Bearbeiten => Zeilen löschen =>
> (*) Zellen nach oben verschieben".
Nein, denn eine RangeAdresse ist kein Zellobjekt.
Ich hatte es ohnehin extra ausprobiert und schrieb deshalb "passendes(!)
CellRange*s*-Objekt", denn z.B. liefern folgende Makros im Ergebnis die gleiche
Selektion:
Sub Main1
Dim x(0)
bereiche = ThisComponent.CreateInstance("com.sun.star.sheet.SheetCellRanges")
blatt = ThisComponent.CurrentController.ActiveSheet
x(0) = "P2:X13"
bereiche.addRangeAddress(blatt.getCellRangeByName(x(0)).getRangeAddress(),
False)
ThisComponent.CurrentController.Select(bereiche)
End Sub
Sub Main2
Dim x(1)
bereiche = ThisComponent.CreateInstance("com.sun.star.sheet.SheetCellRanges")
blatt = ThisComponent.CurrentController.ActiveSheet
x(0) = "P2:X13"
x(1) = "M5:O13"
For i = LBOUND(x()) To UBOUND(x())
bereiche.addRangeAddress(blatt.getCellRangeByName(x(i)).getRangeAddress(),
False)
Next i
bereiche.removeRangeAddress(blatt.getCellRangeByName(x(1)).getRangeAddress(),
False)
ThisComponent.CurrentController.Select(bereiche)
End Sub
Gruß
Jörg
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]