com.sun.star.table.CellContentType.EMPTY

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Lib
******
Beiträge: 606
Registriert: Mi, 06.08.2003 20:18

com.sun.star.table.CellContentType.EMPTY

Beitrag von Lib »

Hallo,
ich habe im Programmierhandbuch diese Sequenz zur Ueberprüfung des Zelltyps gefunden, komme aber nicht klar damit. Im Handbuch wird mit case gearbeitet:

Code: Alles auswählen

Select Case Cell.Type
Case com.sun.star.table.CellContent.Type.EMPTY
  msgBox "Content: Empty"
Case com.sun.star.table.CellContent.Type.VALUE
  msgBox "Content: Value"
Case com.sun.star.table.CellContent.Type.TEXT
  msgBox "Content: Text"
Case com.sun.star.table.CellContent.Type.FORMULA
  msgBox "Content: Formula"
End Select
Mein erstes Problem ist, dass im Beispiel als Variablenname 'Cell' gewählt wird, was für mein Anfänger-Verständnis höchlichst verwirrend ist.
Ich nehme an, dass in der Zeile:

Code: Alles auswählen

Select Case Cell.Type
das 'Cell' auch wirklich einen Variablennamen meint. Aber in der Zeile:

Code: Alles auswählen

Case com.sun.star.table.CellContent.Type.EMPTY
kann das doch nicht sein, sonst müsste da doch noch ein Punkt zwischen 'Cell' und 'Content' stehen, oder?

Mein zweites Problem:
ich brauche diese Abfrage in einer IF-Abfrage und in einer WHILE-Schlaufe. Wie formuliere ich denn das?
Es geht darum, dass eine Tabellenzeile Zelle um Zelle gelesen werden soll, bis eben eine leere Zelle kommt, was das Ende der Zeile bedeutet.
(Oder gibt es eine klügere Art, festzustellen, welches die letzte Zelle in der Zeile ist)

Danke schonmal und viele Grüsse
Lib
Lib
******
Beiträge: 606
Registriert: Mi, 06.08.2003 20:18

Beitrag von Lib »

Anonymous hat geschrieben:

Code: Alles auswählen

Do While Cell.Type <> EMPTY/code]
[/quote]
Hallo Stefan,
einwandfrei, vielen herzlichen Dank!
Gruss, Lib
Lib
******
Beiträge: 606
Registriert: Mi, 06.08.2003 20:18

Re: com.sun.star.table.CellContentType.EMPTY

Beitrag von Lib »

Hallo,
ich komm nochmal mit einer Folgefrage. Die Abprüfung auf EMPTY kriege ich ja nun hin.
Aber TEXT und VALUE nicht.
Bei VALUE passiert gar nichts (obwohl eine Zahl in der Zelle steht)
und bei TEXT bekomme ich 'Baisc-Fehler'
Hintergrund:
Die gelesenen Zellinhalte sollen anderswo mit dem gleichen Typ wieder eingefügt werden, wie sie in der Quell-Zelle vorgefunden werden. Wenn ich einfach mit Cell.String lese und schreibe, werden alle Zellen als Texte eingefügt.
Also möchte ich im Fall von Zahlen Cell.Value benutzen.

Vielleicht könntest Du mir auch das noch aus dem Case-Beispiel erklären:

Code: Alles auswählen

Select Case Cell.Type
Case com.sun.star.table.CellContent.Type.EMPTY
  msgBox "Content: Empty"
Case com.sun.star.table.CellContent.Type.VALUE
  msgBox "Content: Value"
....
End Select
Warum steht hier:

Code: Alles auswählen

Case com.sun.star.table.CellContent.Type.EMPTY
und nicht einfach

Code: Alles auswählen

Select Case Cell.Type
Case EMPTY
  msgBox "Content: Empty"
Case VALUE
  msgBox "Content: Value"
....
End Select
und warum genügt in der Select-Zeile: 'Type',
in der Case-Zeile ist dann aber von: 'CellContent.Type' die Rede?

Funktionieren tut bei mir übrigens keine Variante. Wenn ich das genauso abtippe wie im Beispiel und nur den Zellvariablennamen anpasse, ist es auch so, dass die Bezeichnungen TEXT VALUE EMPTY FORMULA im Basic-Editor unterschiedlich eingefärbt werden, obwohl die Syntax in allen Zeilen die gleiche ist.

Danke und Grüsse,
Lib
Antworten