von Toxitom » Mi, 21.11.2007 12:53
Hallo datensurfer,
datensurfer hat geschrieben:ThisComponent.CurrentSelection.RangeAddress
Das kann man so nicht sagen! Die "CurrentSelection" kann nämlich diverse Zustände annehmen: Eine einzelne Zelle, einen einfachen, zusammenhängenden Zellbereich oder mehrere, nicht zusammenhängende Zellbereiche. Je nachdem, was es ist, musst du anders reagieren!
Also, zunächst prüfst du, ob die "CurrentSelection" den Service css.sheet.SheetCellRanges unterstützt - dann handelt es sich um eine Mehrfachselektion nicht zusammenhängender Bereiche. Hier kannst du mit der Methode getRangeAddresses() einen Array aller Zellbereichsadressen auslesen - und dann einzeln behandeln.
Ist es kein SheetCellRanges, dann prüfst du, ob die "CurrentSelection" den Service css.sheet.SheetCell unterstützt - dann handelt es sich um eine einzelne Zelle. Hier bekommst du die Adresse (das Adressobjekt ) mit der Methode getCellAddress()
Ist es auch kein SheetCell, dann ist es ein einfacher, zusammenhängender Zellbereich. Hier erhälst du das Adressobjekt mit getRangeAddress().
Hast du das Adressobjekt, kannst du Spalte und Zeile (jeweils als Index) auslesen:
startColumn, startRow, endColumn, endRow.
Frage beantwortet?
Gruss
Thomas
Hallo datensurfer,
[quote="datensurfer"]ThisComponent.CurrentSelection.RangeAddress[/quote]
Das kann man so nicht sagen! Die "CurrentSelection" kann nämlich diverse Zustände annehmen: Eine einzelne Zelle, einen einfachen, zusammenhängenden Zellbereich oder mehrere, nicht zusammenhängende Zellbereiche. Je nachdem, was es ist, musst du anders reagieren!
Also, zunächst prüfst du, ob die "CurrentSelection" den Service css.sheet.SheetCellRanges unterstützt - dann handelt es sich um eine Mehrfachselektion nicht zusammenhängender Bereiche. Hier kannst du mit der Methode getRangeAddresses() einen Array aller Zellbereichsadressen auslesen - und dann einzeln behandeln.
Ist es kein SheetCellRanges, dann prüfst du, ob die "CurrentSelection" den Service css.sheet.SheetCell unterstützt - dann handelt es sich um eine einzelne Zelle. Hier bekommst du die Adresse (das Adressobjekt ) mit der Methode getCellAddress()
Ist es auch kein SheetCell, dann ist es ein einfacher, zusammenhängender Zellbereich. Hier erhälst du das Adressobjekt mit getRangeAddress().
Hast du das Adressobjekt, kannst du Spalte und Zeile (jeweils als Index) auslesen:
startColumn, startRow, endColumn, endRow.
Frage beantwortet?
Gruss
Thomas