Excel - Rechercher et remplacer plusieurs mots
Je veux juste faire un simple rechercher et remplacer pour plusieurs chaînes de caractères. Par exemple, j'ai besoin de remplacer tous les "A1", "A2", "A3" à "système" et tous les "B1", "B2" avec "ACC" et ainsi de suite...
Personne ne sait une bonne route à prendre? Je ne suis pas sûr de savoir comment obtenir commencé. Merci pour l'aide!
Est "A2" une chaîne ou une référence de cellule?
OriginalL'auteur user960358 | 2012-11-07
Vous devez vous connecter pour publier un commentaire.
Mise à jour au bas de l'adressage de Michael commentaire re une meilleure approche pour beaucoup de modèle de remplacement
Si vous enregistrez une macro simple en utilisant le manuel
Replace
options dans le menu Excel, vous obtiendrez le code que vous pouvez ranger jusqu'à ceActiveSheet
que contient"I am A1"
à"I am System"
- une partie de la chaîne de matchActiveSheet
qui contient uniquement"A1"
à"Sytem"
- c'est à dire un ensemble de cellules chaîne de matchcode
Mise à jour
Le code ci-dessous
Timer
de comparer le remplacement de tous les partielle chaînes allant deA1-A99
etB1-B99
Replace
méthode ci-dessus, appelé 198 fois (c'est à dire 2*99) dans une boucleRegExp
\ tableau de variant comboSur mon test de la deuxième méthode est plus rapide pour les 198 remplacements sur un de 1 000 000 de cellules de gamme.
Moins de remplacements permettra d'améliorer la vitesse relative vers la
Replace
. De plus en plus vers leRegExp
Plus de cellules permettra également d'améliorer la vitesse relative vers la
Replace
. Moins vers laRegExp
Je n'ai pas procéder à essayer un
Find
méthode à plus tard l'analyse de chaînes de caractères. Comme un hyrbrid type de solution (trouver puis analyser ut de ne pas être compétitifs à un seul remplacer ou analyser)Minuterie
1) Remplacer Sous
2) Regexp - Tableau De Variantes Sous
Vous pouvez utiliser
With ActiveSheet.Columns("A:A")
plutôt queActiveSheet.UsedRange
. MAIS avant de l'exécuter, vous devez définir la Trouver et Remplacer des options via le Menu xl àworksheet
plutôt queworkbook
Si vous utilisez des Regex, vous n'avez qu'à écrire remplacer deux états. Au lieu de A1, A2, A3, vous rechercher Un[0-9]{1,2}. Que trouverez A1-A99. Même avec B: B[0-9]{1,2}. De cette façon, vous n'avez pas à continuer à écrire de remplacer les déclarations à perpétuité si les ensembles de données sont de plus en plus/de plus petites.
sauf que l'OP n'a pas demandé à match de A1-A99. De Plus, vous ne pouvez pas utiliser les Regexp directement avec Excel VBA Remplacer.
Génial trucs! Vraiment utile pour voir les différentes méthodes alignés ensemble. Merci pour le schoolin'! 🙂
OriginalL'auteur brettdj