Seite 1 von 1
Benutzter Zellbereich in Zwischenablage kopieren
Verfasst: So, 29.08.2021 10:35
von Clousi
Hallo zusammen
ich bin wieder einmal
![Wink ;)](./images/smilies/icon_wink.gif)
.
Ich würde gerne den gesamten benutzten Zellbereich des aktiven Arbeitsblattes markieren und in die Zwischenablage kopieren (um von dort händisch in einer anderen Arbeitsmappe einzufügen).
Ich habe mit meinen sehr beschränkten Basic Kenntnissen schon Einiges versucht, aber komme auf keinen grünen Zweig.
Kann mir jemand helfen? Vielen Dank im Voraus!
Clousi
MacOS BigSur
OpenOffice 4.1.10
Re: Benutzter Zellbereich in Zwischenablage kopieren
Verfasst: So, 29.08.2021 13:42
von mikeleb
Hallo,
warum per Makro? Alles markieren und kopieren sind mit wenigen Tastenkombinationen erledigt ...
Ansonsten siehe z. B. hier
https://www.uni-due.de/~abi070/files/OO ... eutsch.pdf Kapitel 11.3
Re: Benutzter Zellbereich in Zwischenablage kopieren
Verfasst: So, 29.08.2021 14:04
von Stephan
ich würde das pragmatischerweise mit dem Makrorekorder aufzeichnen und also sog. dispatchercode verwenden, WEIL Du das Kopieren ohnehin sinnvollerweise per dispatcher machen musst.
Das gibt dann:
Code: Alles auswählen
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:GoToEndOfData", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Sel"
args2(0).Value = true
dispatcher.executeDispatch(document, ".uno:GoToStart", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
end sub
Vorstehender Code markiert immer den Zellbereich mit Zelle A1 als linker oberer Ecke und der Zelle die der letzten benutzten Spalte und Zeile entspricht als rechter-unterer Ecke.
Gruß
Stephan
Re: Benutzter Zellbereich in Zwischenablage kopieren
Verfasst: Di, 31.08.2021 20:53
von Clousi
Vielen Dank, Stephan. Auch das klappte auf Anhieb.
Immer wieder eine Freude
![Wink ;)](./images/smilies/icon_wink.gif)