Variable aus Array() übernehmen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Hago
****
Beiträge: 135
Registriert: Di, 07.12.2004 16:44

Variable aus Array() übernehmen

Beitrag von Hago »

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
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Beitrag von Charly »

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.
Wie bekomme ich die Zahl aus C3 als Wert für args5(0).Value ?
Schreib folgendes

Code: Alles auswählen

Dok = ThisComponent
Controller = Dok.CurrentController
Blatt = Controller.ActiveSheet
Zelle = Blatt.getCellRangeByName("C3")
Wert = Zelle.Value
....
args5(0).Value = Wert 
.....
Gruß
Charly
Antworten