Comment rechercher une chaîne dans une seule colonne (A) dans excel à l'aide de VBA
Je veux changer ces lignes dans mon code excel VBA pour quelque chose de beaucoup plus rapide, au lieu d'une boucle dans toutes les lignes, je n'ai vu des exemples, mais ne pouvait pas comprendre que je ne suis pas un utilisateur de VBA.
Lorsque j'ai utilisé le code dans les échantillons (google,ce site), je ne vois pas au bon faut que je veux, je veux de recherche de la colonne A, et si les valeurs trouvées renvoyer les valeurs dans la colonne B, à côté de la recherche des valeurs, sinon de retour à vide.
Plus du code que j'ai utilisé a renvoyé l'erreur lorsqu'il n'est pas trouvé et quelques autres comportement mystérieux.
Mon code actuel de la recherche est:
Dim k As Integer
For k = 2 To sheet2Counter - 1
Dim tmp As String
tmp = ActiveSheet.Range("A" & k).Value
If tmp = tmpstr Then
tmp = ActiveSheet.Range("B" & k).Value
tmp = Replace(tmp, "Q", "A")
mainstringtopaste = mainstringtopaste + tmp + ","
Exit For
End If
Next k
Aussi laissez-moi savoir si cela est une meilleure façon ou n'importe quel code qui va le remplacer pour être plus rapide.
Colonnes dans la feuille pour être recherchés comme:
ColumnA ColumnB
trees leaves
oranges fruits
pineapple fruits
leaves trees
De sorte que mon code ci-dessus, les arbres doivent être recherchés et les feuilles doivent être retournés...
Merci
L'une chaîne de caractères par cellule , donc je dirais ensemble de la chaîne. Veuillez voir ci-dessus j'ai mis à jour la description . Merci
De grâce ne les arbres se produire une fois ou plusieurs fois?
Les valeurs dans la colonne sont distincts (ne répétez pas ) ,mais ils n'sortie dans la Colonne B, parfois.Voir ci-dessus. Merci
OriginalL'auteur confusedMind | 2012-01-11
Vous devez vous connecter pour publier un commentaire.
Ci-dessous sont deux méthodes qui sont supérieures à la boucle. Gérer une "trouver".
VLOOKUP
avec gestion d'erreur si la variable n'existe pas (INDEX/MATCH
peut être une meilleure voie queVLOOKUP
, c'est à dire si vos deux colonnes A et B ont été dans l'ordre inverse, ou étaient éloignés)VBAs
FIND
méthode (correspondant à un ensemble de la chaîne dans la colonne A donné-je utiliser lexlWhole
argument)Une requête est cette ligne " Set rng1 = Range("A:A").Trouver(strSearch, , xlValues, xlWhole)" je pense que cette ligne me prend la feuille et de la recherche est visible pour moi, je peux voir les cellules se sélectionnée etc, comment le cacher ?je veux dire que je suis en train de montrer mon processus de progrès dans une zone de texte, mais il me prend la feuille et présente les différentes colonnes d'être sélectionné etc... Merci
Assurez-vous de demander à l'écart. Non - il n'y a pas
Select
ouActivate
des commentaires dans mon code, il n'est pas le tout de mettre en lumière.oui,merci encore, je suis en utilisant activer la feuille au-dessus d'elle .:)
OriginalL'auteur brettdj