Frage stellen
0

Makro Inhalte kopieren und nur Zahlen einfügen in Calc

gefragt 2017-02-15 11:38:25 +0200

zahlendreer Gravatar-Bild

In OpenOffice hatte ich über den MakroRekorder ein Makro erstellt um Zellinhalte (Formeln) zu kopieren und danach nur die Zahlen in einen anderen Bereich einzufügen. In OO hat das auch anstandslos funktioniert. In LO (Version 5.2.3.3), funktioniert das nicht mehr ohne Probleme. - Entweder sind nach dem Kopiermakro weiterhin die Formeln in den Zellen vorhanden. - oder er kopiert einen Inhalt den er noch aus einer vorherigen Tabelle irgendwo im Zwischenspeicher hat. - Ganz selten klappt es auch.

Ich bin am verzweifeln. Warum ist LibreOffice damit überfordert?

Hier der verwendete Code

oSheet = oDoc.getsheets().getbyIndex(0)
oview=oDoc.getcurrentController()                               
oview.setActiveSheet(oSheet)
document   = ThisComponent.CurrentController.Frame
        args1(0).Name = "ToPoint"
        args1(0).Value = "$D$6:$AM$100"
        dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
                    dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
        args3(0).Name = "ToPoint"
        args3(0).Value = "$D$6"
        dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
        args4(0).Name = "Flags"
        args4(0).Value = "V"
        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())
edit retag flag offensive close merge delete
0

geantwortet 2017-02-16 09:28:14 +0200

Toxitom Gravatar-Bild

Hey Zahlendreher,

hmm, wenn ich unter LO 5.3 Dein Makro neu aufnehme kommt der selbe Code raus wie der, den du gepostet hast. Und es funktioniert einwandfrei.

Allerdings ist der Makrocode-Rekorder sowieso nicht wirklich zu empfehlen. Hier darfst Du nicht zu viel erwarten.

Was mich allerdings wundert: Du schreibst, mal geht es, mal wieder nicht. Das ist sehr ungewöhnlich und deutet wohl auf andere Probleme hin. Welches Betriebssystem fährst Du?

Im Übrigen ist allerdings auch dein Startcode entweder unvollständig oder falsch:

oSheet = oDoc.getsheets().getbyIndex(0)
oview=oDoc.getcurrentController()                               
oview.setActiveSheet(oSheet)

Die Variable oDoc ist nicht definiert und wird zum Fehler führen.

Viele Grüße Tom

edit flag offensive delete link mehr
0

geantwortet 2017-02-16 12:47:00 +0200

zahlendreer Gravatar-Bild

updated 2017-02-21 11:47:27 +0200

Hallo Toxitom, vielen Dank für Deine Antwort. Das System ist Windows 7 und den Code habe ich nicht vollständig eingefügt. oDoc ist im vollständigen Code definiert (Option Explicit).

GELÖST - siehe BUG 70883:

https://bugs.documentfoundation.org/s...

Wenn eine Schaltfläche aktiv ist, dann funktioniert der uno:copy Befehl nicht. Das war bei meiner Konstellation der Fall. Wenn das Makro über Extra-Makros-ausführen aufgerufen wird, dann läuft das Makro ohne Probleme durch.

edit flag offensive delete link mehr
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

1 follower

Stats

Asked: 2017-02-15 11:38:25 +0200

Seen: 139 times

Last updated: Feb 21