Excel - Suchen und ersetzen mehrere Wörter
Ich will einfach nur ein einfaches suchen und ersetzen für mehrere Zeilen. Zum Beispiel, ich muss alle ersetzen "A1", "A2", "A3" - mit "system" und "B1", "B2" mit "ACC" und so weiter...
Weiß jemand eine gute route zu nehmen? Ich bin nur nicht sicher, wie dieses zu erhalten begonnen. Vielen Dank für die Hilfe!
Ist "A2" eine Zeichenfolge oder ein Zellbezug?
InformationsquelleAutor user960358 | 2012-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update unten auf Michaels Kommentar re ein besserer Ansatz für viele Muster Ersatz
Wenn Sie record ein einfaches makro mit dem manuellen
Replace
Optionen aus dem Excel-Menü erhalten Sie code, den Sie sauber bis zu diesemActiveSheet
als enthält"I am A1"
zu"I am System"
- ein Teil-string-matchActiveSheet
enthält nur"A1"
zu"Sytem"
- ie eine whole-cell-string-matchcode
Update
Den code unten
Timer
zu vergleichen, zu ersetzen teilweise Saiten reichen vonA1-A99
undB1-B99
Replace
Methode oben genannt 198-mal (also 2*99) in einer SchleifeRegExp
\ array mit variant-comboMeiner Prüfung die zweite Methode ist schneller, für die 198 Ersatz auf einem 1,000,000 Zellbereich.
Weniger Ersetzungen verbessern die relative Geschwindigkeit in Richtung des
Replace
. Mehr in Richtung derRegExp
Mehr Zellen verbessert auch die relative Geschwindigkeit in Richtung des
Replace
. Weniger aufRegExp
Ich nicht gehen, mit dem Versuch einer
Find
Methode mit später Parsen von strings. Als hyrbrid-Typ-Lösung (finden dann analysieren ut wäre nicht konkurrenzfähig zu einem einzigen ersetzen oder analysieren)Timer
1) Ersetzen Sub
2) Regexp - Variante Array Sub
Sie können
With ActiveSheet.Columns("A:A")
eher alsActiveSheet.UsedRange
. ABER bevor Sie ausführen, sollten Sie das Suchen und Ersetzen-option über das xl-Menü, umworksheet
eher alsworkbook
Wenn du Regex, Sie hätte nur schreiben müssen zwei replace-Anweisungen. Anstelle von A1, A2, A3, würden Sie die Suche nach[0-9]{1,2}. Finden A1-A99. Gleiche mit B: B - [0-9]{1,2}. So dass Sie nicht haben, um halten Sie schriftlich replace-Anweisungen auf Dauer, wenn Ihre Datensätze größer/kleiner.
außer der OP nicht gefragt habe, ob übereinstimmung von A1-A99. Plus, können Sie nicht wirklich verwenden Sie Regexp direkt mit einem Excel-VBA Ersetzen.
Awesome stuff! Wirklich nützlich, um zu sehen, die verschiedenen Methoden aufgereiht zusammen. Vielen Dank für die schoolin'! 🙂
InformationsquelleAutor brettdj