2010-10-19 7 views
1

j'ai trouvé une chose intéressante:objet Word VBA Range.Find ne fonctionne pas correctement

Dans Word 2010, sélectionnez un texte, et exécuter le code VBA suivant:

public Sub Test() 
    With Selection.Range.Find 
     MsgBox .Execute(Selection.Range.text) 
     MsgBox .Found 
    End With 
End Sub 

deux la boîte deux messages disent " Faux ", mais les deux devraient être" Vrai ". Pourquoi?

Répondre

0

Très intéressant!

Word 2007 présente le même comportement. Ce qui est curieux, c'est que non seulement lorsque vous recherchez dans VBA: Si vous sélectionnez du texte dans le document et appuyez sur "find", la boîte de dialogue de recherche affiche par défaut le texte sélectionné en tant qu'objectif.
En appuyant sur "Rechercher suivant>" Word affiche un message d'erreur "Word a atteint la fin du document ... etc".

Cela ne se produit pas si vous modifiez le texte pour rechercher la suppression du dernier caractère. VBA est compatible avec cela: le code suivant fonctionne!

Sub tt() 
    With Selection.Range.Find  
     MsgBox .Execute(Mid(Selection.Range.Text,1,Len(Selection.Range.Text)-1)) 
     MsgBox .Found 
    End With 
End Sub 

Non résolu ... mais s'est avéré conforme à l'interface graphique.

HTH!

+0

Merci beaucoup pour votre réponse. – dxjh

Questions connexes