von Toxitom » Do, 26.01.2006 13:20
Hey Klaus,
hmm, sieht doch schon ganz gut aus.
Verbesserung: Dein Abschnitt mit Suchen/Ersetzen wird zeimlich identisch zweimal aufgeführt. Redundanzen sollten vermieden werden. Das kannst du zum Beispiel durch eine eigenständige Prozedur lösen:
Code: Alles auswählen
sub SucheErsetze(sSu, sEr, oSheet, bSWords as boolean, bsCase as boolean)
oSuche1 = oSheet.createReplaceDescriptor
For I = 0 to oSheets.getCount() -1
oSheet = oSheets.getByIndex(I)
oSuche1.setSearchString(sSu)
oSuche1.setReplaceString(sEr)
oSuche1.SearchWords = bSWords
oSuche1.SearchCaseSensitive = bSCase
oSheet.replaceAll(oSuche1)
next I
end sub
Die Funktion erwartet fünf Parameter, die jeweiligen Such- und Ersetzen Strings, das Blattobjekt. sowie die Boolschen Werte. Die könntest du natürlich auch als globalke Variablen definieren, dann brauchst du sie nicht übergeben.
Dann rufst du die Funktion an passender Stelle auf:
Code: Alles auswählen
'--Su/er-Eingabe des Dialogs werden an die Variablen ausgelesen
sSu1 = oDlg.getControl("txtSu1").getText
sEr1 = oDlg.getControl("txtEr1").getText
sSu2 = oDlg.getControl("txtSu2").getText
sEr2 = oDlg.getControl("txtEr2").getText
REM hier jetzt die Funktion aufrufen:
SucheErsetze(sSu1, sEr1, oSheet, bSWords, bSCase)
SucheErsetze(sSu2, sEr2, oSheet, bSWords, bSCase)
REM das war es
end sub
Wobei ich die Logik des Programms natürlich nicht prüfen kann .
(Warum zum Beispiel gibt es zwei Begriffe, die ersetzt werden sollen, und nicht einer, drei oder zehn?)
Viele Grüße
Thomas
Hey Klaus,
hmm, sieht doch schon ganz gut aus.
Verbesserung: Dein Abschnitt mit Suchen/Ersetzen wird zeimlich identisch zweimal aufgeführt. Redundanzen sollten vermieden werden. Das kannst du zum Beispiel durch eine eigenständige Prozedur lösen:
[code]sub SucheErsetze(sSu, sEr, oSheet, bSWords as boolean, bsCase as boolean)
oSuche1 = oSheet.createReplaceDescriptor
For I = 0 to oSheets.getCount() -1
oSheet = oSheets.getByIndex(I)
oSuche1.setSearchString(sSu)
oSuche1.setReplaceString(sEr)
oSuche1.SearchWords = bSWords
oSuche1.SearchCaseSensitive = bSCase
oSheet.replaceAll(oSuche1)
next I
end sub
[/code]
Die Funktion erwartet fünf Parameter, die jeweiligen Such- und Ersetzen Strings, das Blattobjekt. sowie die Boolschen Werte. Die könntest du natürlich auch als globalke Variablen definieren, dann brauchst du sie nicht übergeben.
Dann rufst du die Funktion an passender Stelle auf:
[code]'--Su/er-Eingabe des Dialogs werden an die Variablen ausgelesen
sSu1 = oDlg.getControl("txtSu1").getText
sEr1 = oDlg.getControl("txtEr1").getText
sSu2 = oDlg.getControl("txtSu2").getText
sEr2 = oDlg.getControl("txtEr2").getText
REM hier jetzt die Funktion aufrufen:
SucheErsetze(sSu1, sEr1, oSheet, bSWords, bSCase)
SucheErsetze(sSu2, sEr2, oSheet, bSWords, bSCase)
REM das war es
end sub[/code]
Wobei ich die Logik des Programms natürlich nicht prüfen kann .
(Warum zum Beispiel gibt es zwei Begriffe, die ersetzt werden sollen, und nicht einer, drei oder zehn?)
Viele Grüße
Thomas