Seite 1 von 1

Zellen Löschen - Was mach ich falsch?

Verfasst: Mi, 18.05.2005 19:56
von Tim1202
Hallo,

ich will 5 Zellen löschen. Hier der Code:

Code: Alles auswählen

vRow = 9
oSheet = ThisComponent.CurrentController.ActiveSheet
oSheet.removeRange(osheet.getCellRangebyPosition(0,vRow,4,vRow), com.sun.star.sheet.CellDeleteMode.UP)
Warum kommt in der 3. Zeile die Fehlermeldung:
Illegal Argument Exception
Cannot Coerce Argument type during corereflection call!

Danke für Tipps,

Timon

Verfasst: Mi, 18.05.2005 23:01
von Stephan
removeRange erwartet eine Zellbereichsadresse und kein ZellRange-Objekt

zum Beispiel:

Code: Alles auswählen

Sub Main
vRow = 9 
oSheet = ThisComponent.CurrentController.ActiveSheet
Dim oZellbereichsAdresse as new com.sun.star.table.CellRangeAddress
oZellbereichsAdresse.Sheet = oSheet.name
oZellbereichsAdresse.StartColumn = 0
oZellbereichsAdresse.StartRow = vRow
oZellbereichsAdresse.EndColumn = 4
oZellbereichsAdresse.EndRow = vRow
oSheet.removeRange(oZellbereichsAdresse, com.sun.star.sheet.CellDeleteMode.UP)
End Sub

Gruß
Stephan

Verfasst: Do, 19.05.2005 07:20
von Tim1202
Hallo Stephan,

vielen Dank für deinen Tipp! :D
Diesen Code hatte ich auch probiert, nur wusste ich nicht, wie ich die Eigenschaft Sheet belegen sollte, da ich kein Object übergeben konnte. Somit hab ich jetzt wieder eine Eigenschaft (.name) dazugelernt.

Nochmals vielen Dank!

Timon

Verfasst: So, 22.05.2005 10:34
von Tim1202
Hallo nochmal!

Um ganz ehrlich zu sein, hab ich den Code erst heut so richtig testen können (wie immer keine Zeit), und er hat leider nicht funktioniert! :cry:

Denn wie ich mittlerweise herausgefunden habe erwartet die .Sheet Eigenschaft eine Integer-Zahl. Die .name Eigenschaft liefert aber den Namen als String.

Hiermit funktioniert es jezt: :D

Code: Alles auswählen

oSheet = ThisComponent.CurrentController.ActiveSheet
Dim oZellbereichsAdresse as new com.sun.star.table.CellRangeAddress
oZellbereichsAdresse.Sheet = oSheet.RangeAddress.Sheet
oZellbereichsAdresse.StartColumn = 0
oZellbereichsAdresse.StartRow = vRow
oZellbereichsAdresse.EndColumn = 4
oZellbereichsAdresse.EndRow = vRow
oSheet.removeRange(oZellbereichsAdresse, com.sun.star.sheet.CellDeleteMode.UP)
Mfg

Timon

Verfasst: So, 22.05.2005 15:30
von Stephan
Ja, Du hast recht: es wird eine Zahl erwartet.

Ich hätte das vorher testen sollen.


Gruß
Stephan