...in einem StarCalc (5.1a) Dokument.
Ich bekomme es einfach nicht hin, mit einer Schleife Mehrfachselektionen von Zellen oder Zeilen (meist nicht zusammenhängend!) zu erreichen. Konkretes Ziel: Das Makro soll den Inhalt von Zellen Prüfen und bei bestimmten Inhalt die ganze Zeile (in der die Zelle ist) löschen. Ich habe das ganze jetzt noch so gelöst, daß die Zellen abgefragt werden und dann mit .DeleteRow gelöscht werden. Funktioniert, ist aber schnarchlangsam (ca 5 min. bei einer Tabelle). Nun wollte ich das ganze schneller machen, indem ich mit GoToCell die betreffenden Zellen selektiere und wenn die Tabelle abgearbeitet ist in einem Zug alle Zeilen mit Selektierten Zellen lösche. Mein Problem ist nun, daß ich einfach keine Mehrfachselektion hinbekomme. Selbst wenn ich innerhalb der Schleife GoToCell mehrmals hintereinander ausführe (was Quatsch ist, da selten die zu löschenden Zeilen aufeinander folgen) markiert er immer nur die letzte. Auch mit SelectRow komme ich nicht weiter. Wo liegt mein Problem??
Hier noch mein 'Versuchs-Aufbau'
REM ******Ab hier werden komplett leere Zeilen gelöscht ********
For PSumZeile = 4 to 20
REM startet in Zeile 4 und markiert Zeilen ohne Bestellungen (20 ist nur zum Testen; real 200)
PSZeile= DateiObjekt.CellText(4,PSumZeile,31)
REM Belegt die Variable PSZeile mit dem Wert der Zelle mit den Koordinaten aus Spalte 4:PSumZeile:Tabelle 31
if PSZeile="0" then
Windows(DokuName & ":1").GoToCell( "Pappen.$D$" & PSumZeile )
rem Windows(DokuName & ":1").SelectRow
REM Prüft den Inhalt der Variablen PSZeile und markiert ggf. diese Zelle
end If
next
REM Addiert zum Zähler "PSumZeile" eins und springt zurück zum "for PSumZeile"
DateiObjekt.Selection.Delete("R")
rem löscht die Zeilen in denen die Zellen selektiert sind
Vielen Dank!
[ Leser: 35 ] |