Seite 1 von 1
Re: Wechseln zwischen Tabellen
Verfasst: So, 29.04.2018 20:52
von Stephan
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())
aber der weiterführende Code bezieht sich weiterhin auf die Ursprungstabelle, unter der auch das Makro gespeichert ist.
Wenn der weiterführende Code dispatch-Befehle enthält musst Du nach Erstellen der neuen Datei den Bezug des Dispatchers darauf herstellen, ungefähr so:
Code: Alles auswählen
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array()
document2 = oDoc
dispatcher2 = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(...) as new com.sun.star.beans.PropertyValue
args1(0).Name = ...
args1(0).Value = ...
...
dispatcher2.executeDispatch(document2, ".uno:...", "", 0, args1())
Wie kann ich die neueröffnete Tabelle ansprechen bzw. wie kann man generell zwischen Tabellen wechseln?
Einen 'generellen' Befehl gibt es nicht weil das Wechseln zwischen Tabellen eines Dokuments etwas Anderes ist als das Wechseln zwischen Tabellen verschiedener Dokumente. Wahrscheinlich solltest Du auch vom Dispatcher-Code wegkommen und besser nativen Code verwenden, einen ersten Einstieg bildet z.B.:
http://www.dannenhoefer.de/faqstarbasic ... -Calc.html
Gruß
Stephan
Re: Wechseln zwischen Tabellen
Verfasst: Di, 01.05.2018 13:35
von Stephan
die Zeile:
muss lauten:
nochmal aber der Hinweis, das Du im Allgemeinen mit nativem Code besser fährst als mit dispatcher-Code. In Deinem konkreten Falle sähe das z.B. so aus:
Code: Alles auswählen
Sub Main2()
tc = ThisComponent
akt_view = tc.CurrentController
akt_view.Select(tc.Sheets(2).getCellRangeByName("G15")) 'Tabellenzählung beginnt bei 0
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())
oDoc.CurrentController.setActiveSheet(oDoc.Sheets(2)) 'Tabellenzählung beginnt bei 0
End Sub
Gruß
Stephan
Re: Wechseln zwischen Tabellen
Verfasst: Di, 01.05.2018 21:59
von Bernhard_mu
Funktioniert, vielen Dank!
Wie kann ich jetzt wieder auf die Ursprungstabelle wechseln?
Du hast sicher recht mit dem nativen Code, allerdings fange ich erst damit an und ich muß mir am Anfang noch mit dem Makrorecorder behelfen, um Code zu generieren.
Deine Hilfe ist echt toll!!!
Re: Wechseln zwischen Tabellen
Verfasst: Mi, 02.05.2018 08:59
von Stephan
Wie kann ich jetzt wieder auf die Ursprungstabelle wechseln?
Da beide Dokumente sichtbar sind, genügt es das ursprüngliche Dokument in den Vordergrund zu holen:
Code: Alles auswählen
Sub Main2()
tc = ThisComponent
akt_view = tc.CurrentController
akt_view.Select(tc.Sheets(2).getCellRangeByName("G15")) 'Tabellenzählung beginnt bei 0
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())
oDoc.CurrentController.setActiveSheet(oDoc.Sheets(2)) 'Tabellenzählung beginnt bei 0
tc.CurrentController.Frame.ContainerWindow.toFront()
End Sub
Gruß
Stephan