ich bin ganz neu hier und habe mit OO0 Basic eben erst angefangen. Ich habe ein kleines, funktionierendes Makro zum Suchen und Ersetzen von Worten/Zeichen in Calc erstellt (Mit Hilfe von Herrn Dannenhöfer . Nun meine Frage: Geht das auch kürzer (besser)? Ich habe mit "if then" herumprobiert. Aber ohne wirklichen Erfolg. Warum "if then"? Ich dachte mir das so: Weil der String fürs Ersetzen immer "" ist. Also leer oder nichts. Und da sich das wiederholt dachte ich man könnte dieses Makro sicherlich straffen. Habe es aber (noch) nicht hinbekommen. Könnt Ihr mir bitte auf die Sprünge helfen?
ganz herzlichen Dank für Deine super schnelle Unterstützung. Code habe ich "verbaut" und ausprobiert. Sieht gut aus und funktioniert. Bin einen kleinen Wissens-Schritt weiter.
den Bereich, in dem gesucht und ersetzt wird, einschränken, aber dies wird komplett ignoriert (ging bei meiner Version schon nicht, habe ich erst jetzt gemerkt). Der Makro ersetzt in dem gesamten Dokument die "()". Dabei sind sie in einigen Spalten erwünscht und in einer anderen nicht. Wie schränke ich dies richtig ein? So wie ich es gedacht habe ist es ja anscheinend falsch ...
Hallo
Alleine damit, das du den Bereich an den Namen `myRange` bindest, ist es ja nicht getan, du musst auch noch im restlichen Code `Sheet` gegen `myRange` tauschen.
das sind die beiden Zeilen
Hallo
Ich hatte das damals nicht explizit getestet `replace` ist eine Basic-function, benutze einen anderen Namen, zB. `Repl` oder meinetwegen auch `myReplace`
LO7.4.7.2debian 12(bookworm) auf Raspberry4b 8GB (64bit) LO7.6.2.1 flatpakdebian 12(bookworm) auf Raspberry4b 8GB (64bit)
Entschuldigung wenn ich etwas nevig rüber kommen sollte aber ich habe noch nie mit Basic gearbeitet und brauche es vermutlich auch nur dieses eine mal aber jetzt mosert er an, dass er in der Zeile
ich kenne niemanden der dir auf grund deiner einzigen geposteten Codezeile helfen kann. Also zeig uns lieber deinen gesamten Code wo der Fehler auftaucht.
Handelt es sich denn auch um Calc?
Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
sub Suchen_und_Ersetzen
Sheet = ThisComponent.Sheets(0)
Repl = Sheet.createReplaceDescriptor()
Repl.setSearchString("Hallo")
Repl.setReplaceString("Tschüss")
Repl.SearchWords = False
Repl.SearchCaseSensitive = True
Repl.SearchRegularExpression = True
Sheet.replaceAll( Repl)
end sub
Ich habe es jetzt mal ohne das sheets(0) gemacht und jetzt funktioniert es.
Hier wie es für den Writer funktioniert (bin bisher irgendwie noch nicht auf die Idee gekommen das es daran liegen könnte ):
Dann habe ich noch eine frage Karolus. Weisst du woher es kommt, dass ich hiermit zu zwar Strings ersetzen kann, welche normalen Text wie "Hallo" und "Tschüss", aber das ersetzen von Strings mit Sonderzeichen funktioniert nicht immer (z.b. "{<User>}" wird manchmal nicht ersetzt).
Edit: hat sich erledigt da ich den gesamten block ausgetauscht habe.