C#: à la Recherche d'un texte dans Word et l'obtention de la plage du résultat
Je peux trouver un texte dans un fichier Word via:
Word.Range range = wordApp.ActiveDocument.Content;
Word.Find find = range.Find;
find.Text = "xxx";
find.ClearFormatting();
find.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing);
Cela me dit si le texte est trouvé. Mais j'ai besoin de la portée de ce texte-pièce.
Plus tôt dans le code: private objet manquant = Type.Manquant;
Pas sûr que vous les gars et les filles, mais j'ai trouvé cette API pour être un peu déroutant au premier abord. Je m'attends à ce
Pas sûr que vous les gars et les filles, mais j'ai trouvé cette API pour être un peu déroutant au premier abord. Je m'attends à ce
range.Find.Execute(..)
pour revenir une nouvelle gamme d'objets plutôt que de changer de l'un à la racine (Document.Content
).OriginalL'auteur simon | 2010-10-25
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé ceci:
OriginalL'auteur Nix
L'objet de la plage doit être changé par l'exécution de trouver sur elle.
Donc, probablement que vous souhaitez utiliser
range.Start
etrange.End
pour obtenir les positions de caractère.Référence
OriginalL'auteur Kevin Stricker
Obtient une gamme à partir de word à l'aide de trouver la méthode et le format.
OriginalL'auteur prashant
range.Find.Execute
retournetrue
si trouvé, et définitrange
de gamme:Noter que
range.Find.Execute
recherche la plage après larange
sirange
est déjà un match pour les conditions de recherche (après la premièrerange.Find.Execute
).Par exemple, cette Macro VBA trouverez seulement le deuxième "b" :
OriginalL'auteur Slai
Microsoft.Bureau de.Interop.Mot.WdReplace.wdReplaceOne;
OriginalL'auteur user7873608