Prévenir La Gamme.Find() de changer le “match ensemble du contenu de la cellule” paramètre de l'interface utilisateur
Après l'exécution de la première ligne du code ci-dessous, Excel modifie le Match ensemble du contenu de la cellule paramètre dans l'interface utilisateur. Le résultat est que la prochaine fois que l'utilisateur appuie sur Ctrl+F la recherche se fait dans l'ensemble du contenu de la cellule. Je n'aime pas une macro VBA qui change un paramètre qui influe sur l'expérience de l'utilisateur, de sorte que j'ai toujours exécuter la deuxième ligne, qui effectue une recherche et définit les Match ensemble du contenu de la cellule par défaut.
'execute the find and changes the entire cell content setting
Set C = MyRange.Find(SomeText, LookAt:=xlWhole)
'put the setting back to the default value (not the previous value)
MyRange.SomeText ParName, LookAt:=xlPart
Le problème est qu'il jeux de revenir à la valeur par défaut, et non pas à la valeur à l'utilisateur de définir ce dernier.
Je préfère avoir quelque chose comme:
'store the current entire cell content setting
OldLookAt = Application.FindLookAt
'execute the find
Set C = MyRange.Find(SomeText, LookAt:=xlWhole)
'restore the original setting
Application.FindLookAt = OldLookAt
J'ai fait jusqu'à la Application.FindLookAt
parce que je n'étais pas capable de le trouver.
Est-il un moyen de Range.Find
quelque chose sans affecter l'expérience de l'utilisateur?
OriginalL'auteur stenci | 2013-10-09
Vous devez vous connecter pour publier un commentaire.
J'ai passé pas mal de temps à la recherche par le biais de la bibliothèque d'objet Excel et la documentation MSDN et il ne semble pas que c'est possible de les récupérer.
Malheureusement, il ressemble également à Excel en fait remplace et met à votre réglage de l'utilisateur si vous n'incluez pas le paramètre par défaut.
Sinon, le code ci-dessus devrait fonctionner - mais il n'a pas la valeur par défaut est écrasée, même quand il n'est pas inclus.
ouais c'est une bonne question, j'espère que je me trompe - vous avez raison à propos de la documentation, de trop. Les versions sont parfois un désordre complet.
OriginalL'auteur enderland
Voici une fonction qui peut être utilisée pour renvoyer le courant LookAt valeur par défaut de sorte qu'il peut être remis à zéro.
Mon premier post, donc je ne suis pas en mesure d'ajouter un commentaire à enderland de réponse. Dans l'esprit de l'utilité, que le code n'a pas fonctionné comme prévu parce qu'il a utilisé A1 au lieu de $A$1.
OriginalL'auteur Jerry Sullivan