Seite 1 von 1
Suchen und ersetzen per Makro
Verfasst: So, 23.03.2014 10:48
von achimgr
Moin moin Gemeinde,
ich habe versucht, folgendes Makro aufzuzeichnen: Curser steht in irgendeiner Zelle in Tabelle2. Nun die Aufzeichnung: Kopieren, Tabelle1 aktivieren, Spalte F markiert, Strg+F, Einfügen, Nur in Selektion markiert, suchen. (Ende Aufzeichnung)
Damit speichert das Makro aber die bei der Aufnahme kopierte Zahl.
(args3(10).Name = "SearchItem.SearchString"
args3(10).Value = "9990")
Diese soll aber immer die aktuell kopierte Zahl sein.(also eigentlich Value = aktive Zelle in Tabelle2)
Wie geht das?
Re: Suchen und ersetzen per Makro
Verfasst: So, 23.03.2014 11:06
von Stephan
ich versuche mal einen 'Blindflug':
schreibe an den unmittelbaren Anfang des Makros (also gleich nächste Zeile nach dem Sub ...):
Code: Alles auswählen
x_temp = Thiscomponent.getCurrentselection.FormulaLocal
und ändere die Zeile:
in:
Aus verschiedenen Gründen(*) ist das keine 'tolle' Lösung, sollte aber im Prinzip funktionieren.
(*)
weil z.B. keine Fehlerroutine enthalten ist 'knallt' es gnadenlos wenn vor Start des Makros mehr als eine Zelle in Tabelle2 markiert ist.
Gruß
Stephan
Re: Suchen und ersetzen per Makro
Verfasst: So, 23.03.2014 11:16
von achimgr
Hallo Stephan, guten Morgen!
Danke schon mal.
bei der Ausführung des Makros wird zur Tabelle1 gewechselt, dann aber kommt die Meldung "nicht gefunden - von Anfang suchen?" Klick auf JA ergibt die Meldung "Nicht gefunden"
so sieht die Aufzeichnung aus (steht da überhaupt, das nur in Spalte "U" gesucht werden soll? "Spalte F" in der Frage war ein Beispiel tatsächlich ist es "U")
sub Main
x_temp = Thiscomponent.getCurrentselection.FormulaLocal
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Nr"
args2(0).Value = 1
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(17) as new com.sun.star.beans.PropertyValue
args3(0).Name = "SearchItem.StyleFamily"
args3(0).Value = 2
args3(1).Name = "SearchItem.CellType"
args3(1).Value = 0
args3(2).Name = "SearchItem.RowDirection"
args3(2).Value = true
args3(3).Name = "SearchItem.AllTables"
args3(3).Value = false
args3(4).Name = "SearchItem.Backward"
args3(4).Value = false
args3(5).Name = "SearchItem.Pattern"
args3(5).Value = false
args3(6).Name = "SearchItem.Content"
args3(6).Value = false
args3(7).Name = "SearchItem.AsianOptions"
args3(7).Value = false
args3(8).Name = "SearchItem.AlgorithmType"
args3(8).Value = 0
args3(9).Name = "SearchItem.SearchFlags"
args3(9).Value = 71680
args3(10).Name = "SearchItem.SearchString"
args3(10).Value = x_temp
args3(11).Name = "SearchItem.ReplaceString"
args3(11).Value = ""
args3(12).Name = "SearchItem.Locale"
args3(12).Value = 255
args3(13).Name = "SearchItem.ChangedChars"
args3(13).Value = 2
args3(14).Name = "SearchItem.DeletedChars"
args3(14).Value = 2
args3(15).Name = "SearchItem.InsertedChars"
args3(15).Value = 2
args3(16).Name = "SearchItem.TransliterateFlags"
args3(16).Value = 1280
args3(17).Name = "SearchItem.Command"
args3(17).Value = 0
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args3())
end sub