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]

Antwort per Email an