Suchen und ersetzen per Makro

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Suchen und ersetzen per Makro

Re: Suchen und ersetzen per Makro

von achimgr » So, 23.03.2014 11:16

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

Re: Suchen und ersetzen per Makro

von Stephan » So, 23.03.2014 11:06

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:

Code: Alles auswählen

args3(10).Value = "9990"
in:

Code: Alles auswählen

args3(10).Value = x_temp

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

Suchen und ersetzen per Makro

von achimgr » So, 23.03.2014 10:48

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?

Nach oben