J'écris une macro dans MS Word qui devrait trouver tout le texte surligné dans un document et effectuer une action sur chacun d'eux. Je prévois une boucle pour faire la partie de recherche et de manipulation et n'ai aucun problème avec cette partie du code.
Mais je ne sais pas comment trouver combien d'itérations je vais avoir besoin. Existe-t-il un moyen de déterminer le nombre de points forts dans VBA?
Merci beaucoup d'avance.Comment trouver le nombre de blocs de texte surlignés dans un document MS Word
1
A
Répondre
2
With ActiveDocument.Range.Find
.Highlight = True
While .Execute
Debug.Print .Parent.Text
Wend
End With
Il n'est pas nécessaire de calculer le nombre de correspondances initiales. Vous pouvez exécuter la recherche dans une boucle et il s'arrêtera une fois qu'il n'y aura plus de correspondance.
Assurez-vous d'appliquer la recherche à la partie droite du document.J'ai utilisé ActiveDocument.Range
, mais n'importe quel objet Range
fera l'affaire. Peut-être que quelque chose de plus spécifique est mieux pour votre cas.
En outre, consultez les nombreuses autres propriétés du Find
objet et mettez-les à des valeurs sensibles, cela vaut mieux que d'aller avec les valeurs par défaut (personne ne peut se rappeler tous les paramètres par défaut pour toutes les options, plus l'objet Find
peut-être déjà mis en place par une recherche antérieure).
Questions connexes
- 1. Comment lire le texte qui est présent dans la zone de texte du document MS Word?
- 2. Désinfecter le texte collé de MS-Word
- 3. Supprimer la zone de texte du document MS Word
- 4. PHP - Obtenir le nombre de pages dans un document Word
- 5. Coller un document MS Word dans un formulaire Web
- 6. MS Word 2007 - nombre de mots cibles
- 7. Utilisation de VBA pour analyser du texte dans un document MS Word
- 8. Comment puis-je graver du texte de document MS Word sur un serveur Linux?
- 9. Liens vers l'application ASP.NET dans le document MS Word
- 10. Java sauter à la section dans le document MS Word
- 11. Comment trouver et remplacer par programme dans ENTIER Word document
- 12. Demandez à Excel 2003 de rechercher un document dans un document Word et de renvoyer le nombre d'occurrences.
- 13. HTML texte dans le document de Microsoft Word signet
- 14. Télécharger et afficher un document MS Word dans Android
- 15. Analyser le document MS Word pour XMLfragments - C#
- 16. Comment puis-je réinitialiser l'état de bouton barre d'outils MS Word sur le nouveau document de
- 17. Décharger le document Word (* .doc) en texte?
- 18. Utilisez MS Word Macro pour rechercher un fichier texte
- 19. Impression d'un document OOXML sans installation de MS Word
- 20. Comment trouver le nombre de blocs occupés par un fichier à partir de l'espace utilisateur
- 21. Comment extraire automatiquement un texte mis en surbrillance dans MS Word 2010 dans un nouveau fichier?
- 22. Insérer un bouton dans le document Word
- 23. Remplacer le texte dans Document Word avec ActiveX?
- 24. Utilisation de cfcontent dans ColdFusion 7, comment afficher un document MS Word en mode paysage?
- 25. Comment lire un document Word dans asp.net
- 26. Comment lire un document Word dans matlab
- 27. Comment vérifier par programme si des propriétés de document d'un document MS Word 2007 ont changé?
- 28. Comment télécharger un document Word et trouver des doublons dans ce document en utilisant PHP
- 29. Ajouter un autotexte personnalisé pour MS Word
- 30. comment ouvrir un document Word sur le bouton de lien
Merci beaucoup. Cela fonctionne comme une merveille. Mais si ce n'est pas demander trop, pourriez-vous également indiquer si le nombre peut être trouvé du tout? Vous voyez, avant d'entrer dans la boucle, la macro effectue d'autres modifications et il sera utile de vérifier si le document a déjà été traité ou non. Si un utilisateur invoque deux fois la macro, il détecte qu'il a été exécuté une fois. Cela fonctionnera si je peux trouver le nombre de surbrillances parce que la macro supprime la marque de surbrillance des morceaux et après cela, il n'y en a plus. –
@Majid: S'il n'y a pas de surbrillance après la première passe, alors la boucle ne fonctionnera même pas au second essai, car il n'y a pas de surbrillance (ie, 'Execute()' renvoie 'False' tout de suite). ;) Ou peut-être que je ne comprends pas exactement ce que tu veux? – Tomalak
Oui, le code à l'intérieur de la boucle ne serait pas exécuté lors de la seconde exécution, mais j'ai du code avant la boucle, qui sera exécutée. C'est pourquoi j'ai besoin d'une vérification s'il y a des faits saillants dans le document. Je ferais ce contrôle comme la première chose que fait la macro. S'il n'y a aucun moyen d'accéder directement à ce numéro, j'imagine qu'il me faudrait deux boucles while imbriquées? –