Am 27.07.2018 um 10:59 schrieb OoOHWHOoO: > Das Makro (s.u.) > > [1] fügt nach der 2. Zeile eine Zeile ein. > [2] kopiert die Inhalte der 2. Zeile in die neu eingefügte Zeile.
Vorsicht; wenn in der 2. Zeile Verweise auf andere Zeilen (z.b. auf die ursprüngliche Zeile 3, jetzt Zeile 4; passiert so aber auch mit jeder beliebigen andern Zeile) stehen sollten, fällst du damit auf die Schnauze. Denn du kopierst den jetzigen Link von z. B. 2 auf 4 nach 3, von wo aus er natürlich ebenfalls 1 Zeile weiter als ursprünglich gedacht (d. h. also nach 5 statt 4) verweist, usw. > Einen einfachen COPY-Befehl für Zeilen gibt es offensichtlich nicht in > Makro Basic ( http://www.dannenhoefer.de "7.4.5 Wie kann man Zeilen oder > Spalten kopieren ?" ). Jein; man kann ihn einfach aufzeichnen. Zur Demonstration füll mal ein leeres Blatt mit folgenden Werten (A1-E8): Zeile Buchstabe Buchstabe Text Link 2 A f Anton =D3 3 B h Berta =D4 4 C i Charlotte =D5 5 D j Annette =D6 6 E k Anna =D7 Doris Als Makro schreibst du (das ist ein bisschen aufgepimpft, aber im Prinzip nix anderes als "Extras => Makros => Aufzeichnen => <Markieren des Bereichs A1:ZZ1> => Kopieren => <Rechtsklick auf Zeilenkopf von Zeile 2> => Zeilen einfügen => <Rechtsklick auf Zeilenkopf von Zeile 2> => Inhalte Einfügen => <alles aus bis auf [X] Zahlen, [X] Formeln, [X] Formate>"; unglücklicherweise zeichnen Makros nicht Plain Basic auf, sondern UNO-Funktionen, und die sind leider nirgends vernünftig dokumentiert; kann man also de Fakto nur per Makro-Aufzeichnen verwenden): sub CopyXXX 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 = "ToPoint" args1(0).Value = "$A$5:ZZ5" dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1()) rem -------------------------------------------------------------------- dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array()) rem -------------------------------------------------------------------- args1(0).Name = "ToPoint" args1(0).Value = "$A$2" dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1()) rem -------------------------------------------------------------------- dispatcher.executeDispatch(document, ".uno:InsertRows", "", 0, Array()) rem -------------------------------------------------------------------- dim args4(5) as new com.sun.star.beans.PropertyValue args4(0).Name = "Flags" args4(0).Value = "VFT" args4(1).Name = "FormulaCommand" args4(1).Value = 0 args4(2).Name = "SkipEmptyCells" args4(2).Value = false args4(3).Name = "Transpose" args4(3).Value = false args4(4).Name = "AsLink" args4(4).Value = false args4(5).Name = "MoveMode" args4(5).Value = 4 dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args4()) end sub rem ==== Btw, das "VFT" im letzten Arrray stellt die Flags dar, die bestimmen, was genau kopiert werden soll: V = Value F = Formula T = Format D. h. das "V" müsste für den echten Einsatz dann vermutlich raus. Was die entsprechenden Parameter für andere Optionen wie z. B. Datum o. ä. wären, müsstest du per Makro-Aufzeichnen ausprobieren. Und statt A5:ZZ5 suchst du dir die Zeile bzw. den Bereich deines größten Vertrauens [tm]. Wolfgang, UNO hassend (weil da nix, aber auch wirklich nix *vernünftig* dokumentiert ist. Paradoxerweise /sind/ die einzelnen Methoden und Parameter usw. ja durchaus dokumentiert, aber um diese Dokus zu /finden/, musst du /vorher/ schon genau /wissen/, wie der Befehl und seine übergeordneten Objekte (und deren übergeordneten Objekte usw.) heißen, welche Parameter er hat (d. h. welche Parameterkombination du verwenden möchtest), usw.; nur, wenn du das /eh/ schon alles weißt, brauchst du auch keine Dokumentation mehr; völlig bescheuert :-((( ) -- Durch Donald Trump ist mir endgültig klar geworden: Es ist nicht der Turm von Pisa, der schief steht, es ist die Welt! -- Liste abmelden mit E-Mail an: [email protected] Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
