suchen und ersetzen, ganz einfach?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

suchen und ersetzen, ganz einfach?

Beitrag von clag »

Moin,moin liebe Leutz,

hier kommt die Frage eines Makro-Lehrlings :)

ich möchte in der aktiven Zelle bzw im markierten Bereich "\" durch "/" ersetzen, dass ist alles
(wenn es einfacher ist auch in der ganzen Spalte
)
das aufgezeichnete Mafkro ist so riesig und verstehen tu ich es auch noch nicht wirklich :(

Code: Alles auswählen

sub repl_basl_2
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 = "$E$5"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "By"
args2(0).Value = 1
args2(1).Name = "Sel"
args2(1).Value = true

dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "By"
args3(0).Value = 1
args3(1).Name = "Sel"
args3(1).Value = true

dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(17) as new com.sun.star.beans.PropertyValue
args4(0).Name = "SearchItem.StyleFamily"
args4(0).Value = 2
args4(1).Name = "SearchItem.CellType"
args4(1).Value = 0
args4(2).Name = "SearchItem.RowDirection"
args4(2).Value = true
args4(3).Name = "SearchItem.AllTables"
args4(3).Value = false
args4(4).Name = "SearchItem.Backward"
args4(4).Value = false
args4(5).Name = "SearchItem.Pattern"
args4(5).Value = false
args4(6).Name = "SearchItem.Content"
args4(6).Value = false
args4(7).Name = "SearchItem.AsianOptions"
args4(7).Value = false
args4(8).Name = "SearchItem.AlgorithmType"
args4(8).Value = 0
args4(9).Name = "SearchItem.SearchFlags"
args4(9).Value = 71680
args4(10).Name = "SearchItem.SearchString"
args4(10).Value = "\"
args4(11).Name = "SearchItem.ReplaceString"
args4(11).Value = "/"
args4(12).Name = "SearchItem.Locale"
args4(12).Value = 255
args4(13).Name = "SearchItem.ChangedChars"
args4(13).Value = 2
args4(14).Name = "SearchItem.DeletedChars"
args4(14).Value = 2
args4(15).Name = "SearchItem.InsertedChars"
args4(15).Value = 2
args4(16).Name = "SearchItem.TransliterateFlags"
args4(16).Value = 1280
args4(17).Name = "SearchItem.Command"
args4(17).Value = 1

dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args4())

rem ----------------------------------------------------------------------
dim args5(17) as new com.sun.star.beans.PropertyValue
args5(0).Name = "SearchItem.StyleFamily"
args5(0).Value = 2
args5(1).Name = "SearchItem.CellType"
args5(1).Value = 0
args5(2).Name = "SearchItem.RowDirection"
args5(2).Value = true
args5(3).Name = "SearchItem.AllTables"
args5(3).Value = false
args5(4).Name = "SearchItem.Backward"
args5(4).Value = false
args5(5).Name = "SearchItem.Pattern"
args5(5).Value = false
args5(6).Name = "SearchItem.Content"
args5(6).Value = false
args5(7).Name = "SearchItem.AsianOptions"
args5(7).Value = false
args5(8).Name = "SearchItem.AlgorithmType"
args5(8).Value = 0
args5(9).Name = "SearchItem.SearchFlags"
args5(9).Value = 71680
args5(10).Name = "SearchItem.SearchString"
args5(10).Value = "\"
args5(11).Name = "SearchItem.ReplaceString"
args5(11).Value = "/"
args5(12).Name = "SearchItem.Locale"
args5(12).Value = 255
args5(13).Name = "SearchItem.ChangedChars"
args5(13).Value = 2
args5(14).Name = "SearchItem.DeletedChars"
args5(14).Value = 2
args5(15).Name = "SearchItem.InsertedChars"
args5(15).Value = 2
args5(16).Name = "SearchItem.TransliterateFlags"
args5(16).Value = 1280
args5(17).Name = "SearchItem.Command"
args5(17).Value = 3

dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args5())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "ToPoint"
args6(0).Value = "$E$5"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())


end sub
das aufgezeichnete Makro wiederholt aber an gleicher Stelle die Aktion
könnte mir jemand zeigen wo und wie ich den Code auf das nötige kürze bzw ändere

mir ist dabei noch aufgefallen, suchen ersetzen funktioniert nicht, bei nur einer ausgewählten Zelle,
man muss die Zelle extra markiern um in dieser Zelle zu ersetzen ....hmmm




schonmal vielen Dank
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: suchen und ersetzen, ganz einfach?

Beitrag von turtle47 »

Hi Clac,

kurz und schmerzlos für eine Zelle oder Zellbereich:

Code: Alles auswählen

Sub Suchen_Ersetzen
	aRange = ThisComponent.getCurrentSelection()
	sSuchen = aRange.createReplaceDescriptor
	sSuchen.setSearchString("\")
	sSuchen.setReplaceString("/")
	arange.replaceAll(sSuchen)
End Sub
Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: suchen und ersetzen, ganz einfach?

Beitrag von clag »

Hallo Jürgen,

"astrein" funktioniert prima :D
wenn ich hier oft genug frage, kann krieg ich es hoffentlich irgendwann auch mal alleine hin :?

DANKE
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Blumenkübel
Beiträge: 4
Registriert: Mi, 15.06.2016 14:30

Re: suchen und ersetzen, ganz einfach?

Beitrag von Blumenkübel »

Hallo :)
existiert auch so ein einfacher Weg für LibreOffice Writer? Ich möchte das Suchen & Ersetzen nur auf einen zuvor markierten Bereich funktioniert.

Liebe Grüße
Antworten