[gelöst] Merge von Feldern per Makro
Verfasst: Sa 5. Jul 2025, 20:41
Hallo,
ich bekomme folgendes leider nicht hin:
Ich möchte mittels eine Makros
aber ich bekomme immer einen Fehler "falsches Argument" in der dispatcher-Zeile.
Ideen?
Dank im Voraus
ich bekomme folgendes leider nicht hin:
Ich möchte mittels eine Makros
- feststellen, OB ein Feld in Spalte A, von dem aus ich den Makro aufrufe, über mehr als eine Zeile geht; wenn ja
- feststellen, über WELCHE Zeilen das verbundene Feld in Spalte A geht (z.B. A12 -A14),
- Dann in diesen ZEILEN die Felder der Spalten K und L (also im Beispiel K12 - L14) so mergen, dass die Inhalte der unteren Zeilen in die oberen übertragen werden (Option 1 des Zusammenführen-Befehls bei manueller Ausführung).
- Schließlich die Zeilen außer der ersten löschen
- wenn nein, einen Schritt nach unten gehen und das ganze wiederholen.
- im Feld in Zeile 1 die Zeilennummer feststellen; in eine Variable Row1 schreiben
- einen Schritt nach unten gehen; auch hier die Zeilennummer feststellen und in eine Variable Row2 schreiben
- wenn die Subtraktion >0 ergibt:
- einen Befehl Merge $KRow1$LRow2 ausführen [wie lautet der? Wie wird die Adresse übergeben; wie wird angegeben, dass der Inhalt nach oben bewahrt werden soll? ich habe gefunden: dispatcher.executeDispatch(document, ".uno:MergeCells", "", 0, "K"+row1+"L"+row2), aber der hinter Teil ist sicher falsch]
- einen Befehl zum Löschen der Zeilen von Row1+1 bis Row2 ausführen [auch hier: wie geht das?]
- wenn sie es nicht tut: einen Schritt nach unten; Macro neu aufrufen
Code: Alles auswählen
sub test2
row1 = ThisComponent.CurrentSelection.rows(0)
'MsgBox ("Selected: "+row)
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(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "By"
args1(0).Value = 1
args1(1).Name = "Sel"
args1(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
rem ---------------------------------------------------------------------------------
row2 = ThisComponent.CurrentSelection.rows(0)
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "MoveContents"
args2(0).Value = false
dispatcher.executeDispatch(document, ".uno:MergeCells", "$K"+row1+"$L"+row2, 0, args2())
end sub
Ideen?
Dank im Voraus