2015-02-27 1 views
2

je travaille a cette fonction (Elle retourne la ligne où le texte DK001 se trouve dans la plage d'ID)VBA Évaluer la fonction avec des arguments de chaîne

Found = Application.Evaluate("=IF(ID=""DK001"",ROW(ID),""x"")") 

Je voudrais nourrir les critèreRech (par exemple DK001) en tant que chaîne , comme

Found = Application.Evaluate("=IF(ID=SearchString,ROW(ID),""x"")") 

Je ne parviens pas à créer une chaîne acceptée en tant que critère de recherche. J'ai besoin de ton aide pour ça! Qu'est-ce que je fais mal?


Cette fonction est Évaluer me hante ....

si je voulais maintenant envoyer une valeur (pas une chaîne) à la fonction?

Found = Application.Evaluate("=IF(ID=1,ROW(ID),""x"")") 

Ce qui précède fonctionne!

Mais si je veux que ce soit une variable comme

Found = Application.Evaluate("=IF(ID=MyValue,ROW(ID),""x"")") 

Et alors?

+0

Cette fonction me Évaluer hante .... Et si je voulais maintenant envoyer une valeur (pas une chaîne) à la fonction? Trouvé = Application.Evaluate ("= IF (ID = 1, ROW (ID)," "x" ")") Ce qui précède fonctionne! Mais si je veux que ce soit une variable comme Trouvé = Application.Evaluate ("= IF (ID = MyValue, ROW (ID)," "x" ")") Quoi alors? –

Répondre

4

Double " pour les inclure comme littéraux:

SearchString = "DK001" 
Found = Application.Evaluate(""=IF(ID=""" & SearchString & """,ROW(ID),""x"")") 
+0

Merci! Ça marche! J'essayais de faire la même chose, mais à l'intérieur de la chaîne de recherche, mais cela a échoué. Appréciez votre aide et votre réponse rapide! –

-1

Pourriez-vous essayer

Application.Evaluate("=IF(ID="" & searchsrtring & "",ROW(ID),""x"")") 
+0

Je vais essayer aussi, attendez! –

+0

Non! Récupérez une erreur 2029 à ce sujet. Mais la suggestion d'Alex a fonctionné. Merci à vous aussi d'avoir essayé de nous aider! –