Hallo,
ich habe ein Makro aufgezeichnet.
Der Inhalt von C3 (eine Zahl) wird kopiert und in C2 eingefügt - das klappt
Nun habe ich versucht, den Inhalt von Array() zu übernehmen, als Wert für "Value" bei "Copies", aber das klappt nicht (ich bin allerdings mit der Syntax nicht vertraut). Aber nach den Fehlermeldungen zu schliessen, scheint das Array leer zu sein. Ich verstehe das nicht.
Der wesentliche Teil daraus hier:
...............
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$C$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$B$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
dim args5(2) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Copies"
args5(0).Value = Array()
args5(1).Name = "RangeText"
args5(1).Value = "1"
args5(2).Name = "Collate"
args5(2).Value = false
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args5())
.......................
In C3 steht, wie gesagt, immer einfach eine Zahl.
Wie bekomme ich die Zahl aus C3 als Wert für args5(0).Value ?
Gruß, Hago
Variable aus Array() übernehmen
Moderator: Moderatoren
Hallo Hago!
Das ist das Problem mit dem Makrorekorder. Der benützt eine eigene Programmiersprache und die ist schwer zu durchschauen. Aber es wird vermutlich in Array der Kopierbereich bzw Einfügebereich gespeichert und nicht der Inhalt der Zellen. Allerdings hat Starbasic viele Befehle, mit denen man seine Programme besser schreiben kann als mit dem Makrorekorder.
Gruß
Charly
Das ist das Problem mit dem Makrorekorder. Der benützt eine eigene Programmiersprache und die ist schwer zu durchschauen. Aber es wird vermutlich in Array der Kopierbereich bzw Einfügebereich gespeichert und nicht der Inhalt der Zellen. Allerdings hat Starbasic viele Befehle, mit denen man seine Programme besser schreiben kann als mit dem Makrorekorder.
Schreib folgendesWie bekomme ich die Zahl aus C3 als Wert für args5(0).Value ?
Code: Alles auswählen
Dok = ThisComponent
Controller = Dok.CurrentController
Blatt = Controller.ActiveSheet
Zelle = Blatt.getCellRangeByName("C3")
Wert = Zelle.Value
....
args5(0).Value = Wert
.....
Charly