VBScript Loop 2D klappt nicht
Hallo, ich versuche mit einem Loop die Notitzen aller Zellen in einem Openoffice Calc Dokument automatisch zu tarnen. Weil ich niergens eine Möglichkeit finden konnte die Notitzen korrekt nach dem abspeichern und neu öffnen ohne IsVisible=True unsichtbar zu machen. In der selben Datei nach dem automatischen neuöffnen findet der Script die ZELLE nichtmer und Annonation wies scheint auch nicht. Ich sehe keine andere Möglichkeit als jede Zelle einzeln abzuklappern und ZELLE.Annotation.IsVisible=False zu setzen, allerdings werden nur die Notitzen in der ersten Zeile getarnt.
Gruß waldgnarf
INDEX=0
Set SSM=WScript.CreateObject("com.sun.star.ServiceManager")
Set DESKTOP=SSM.createInstance("com.sun.star.frame.Desktop")
Set CALC=DESKTOP.loadComponentFromURL("file:///C:/PFLANZEN.ods", "_blank", 0, Array())
Set BLATT=CALC.getSheets().getByIndex(INDEX)
POSY=0
POSX=0
Do
Set ZELLE=BLATT.getCellByPosition(POSY, POSX)
INHALT=ZELLE.getFormula()
If INHALT="" Then
POSX=POSX+1
POSY=0
End If
ZELLE.Annotation.IsVisible=False
POSY=POSY+1
Loop Until INHALT=""
CALC.store
CALC.Close (True)
Gruß waldgnarf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 96287
Url: https://administrator.de/contentid/96287
Ausgedruckt am: 20.11.2024 um 11:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo waldgnarf!
Die Schleife endet, wenn die erste leere Zelle gefunden wird - insofern kann eigentlich nur die erste Zeile bearbeitet werden ...
Wovon Du alternativ das Bearbeitungsende abhängig machen kannst, musst Du selbst wissen - soferne etwa die erste Spalte ausschlaggebend sein sollte (also Ende, wenn die erste Zeile mit einer leeren ersten Zelle gefunden wird), könnte die Zeile 18 etwa so aussehen:
Grüße
bastla
Die Schleife endet, wenn die erste leere Zelle gefunden wird - insofern kann eigentlich nur die erste Zeile bearbeitet werden ...
Wovon Du alternativ das Bearbeitungsende abhängig machen kannst, musst Du selbst wissen - soferne etwa die erste Spalte ausschlaggebend sein sollte (also Ende, wenn die erste Zeile mit einer leeren ersten Zelle gefunden wird), könnte die Zeile 18 etwa so aussehen:
Loop Until BLATT.getCellByPosition(0, POSX).getFormula()=""
bastla
@Biber
Wer ist hier der Rechtsüberholer? Eben wollte ich waldgnarf fragen, ob mit "Seiten" Tabellenblätter gemeint wären ...
... denn dann könnte er die, wie von Dir beschrieben, aber ev mit
(vor Zeile 5) und dem zugehörigen
(am Ende des Scripts) einzeln abklappern ...
Grüße
bastla
Wer ist hier der Rechtsüberholer? Eben wollte ich waldgnarf fragen, ob mit "Seiten" Tabellenblätter gemeint wären ...
... denn dann könnte er die, wie von Dir beschrieben, aber ev mit
For INDEX = 0 To CALC.Sheets.Count - 1
Next
Grüße
bastla