Suchen Ersetzen dauert sehr lange (CALC)

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 Ersetzen dauert sehr lange (CALC)

Re: Suchen Ersetzen dauert sehr lange (CALC)

von Karolus » Do, 13.08.2015 08:50

Devil hat geschrieben:Hier ein Beispiel aus der Konfig:

User=Devil
Unterschrift=i.A. Satan
UserVorname=Devil
UserName=Satan

Diese werden so übergeben. Das aufrufen des Ganzen ohne das suchen und ersetzen dauert nur ca eine halbe sekunde.
In dem Konfig File werden immer wieder neue Daten hinterlegt, welche ersetzt werden. (allerdings nicht während das Makro läuft)
Ich weiss nicht wie es anderen geht - ich fühle mich irgendwie veräppelt beim lesen dieser Daten

Im übrigen verschweigst du immer noch den massgeblichen Code.

oder häng besser gleich die verwendete Calcdatei, nebst kompletter Konfig an.

Re: Suchen Ersetzen dauert sehr lange (CALC)

von Devil » Do, 13.08.2015 08:25

Hier ein Beispiel aus der Konfig:

User=Devil
Unterschrift=i.A. Satan
UserVorname=Devil
UserName=Satan

Diese werden so übergeben. Das aufrufen des Ganzen ohne das suchen und ersetzen dauert nur ca eine halbe sekunde.
In dem Konfig File werden immer wieder neue Daten hinterlegt, welche ersetzt werden. (allerdings nicht während das Makro läuft)

Re: Suchen Ersetzen dauert sehr lange (CALC)

von Karolus » Mi, 12.08.2015 22:13

Magst du uns den restlichen Code zeigen? - und vielleicht auch ein paar Zeilen deines `Konfig`-files?

sind die Ersetzungen alle individuell?

Suchen Ersetzen dauert sehr lange (CALC)

von Devil » Mi, 12.08.2015 13:05

Ich durchlaufe folgenden Code mehrmals um ca 400 verschiedene Variablen in einem Calc Dokument zu suchen und zu ersetzen. Dies dauert allerdings sehr lange (ca 13 sec.). Im Writer bin ich das Problem umgangen, indem ich Benutzerfelder verwendet habe. Diese scheint es im Calc jedoch scheinbar nicht zu geben, weshalb ich auf "Textvariablen" zurückgreife. Gibt es da eine schnellere Methode oder etwas ähnliches wie Benutzerfelder?

Hier der Suchen und Ersetzencode:

Code: Alles auswählen

Sub Suchen_Ersetzen(zeile as String)

Doc = ThisComponent

aZeile = SPLIT(zeile, "=") 'Zeile aus Konfig Splitten
var = aZeile(0)
txt = aZeile(1)

Sheet = ThisComponent.Sheets(0)
Repl = Sheet.createReplaceDescriptor()
Repl.setSearchString("<</"+var+"/>>")
Repl.setReplaceString(txt)
Repl.SearchWords = False
Repl.SearchCaseSensitive = False
Repl.SearchRegularExpression = True
Sheet.replaceAll( Repl)

End Sub

Nach oben