2009-05-28 15 views
0

J'ai un document Excel contenant une seule colonne de chaînes (environ 400 lignes). J'ai également un document Word qui peut ou ne peut pas avoir ces chaînes dans le document Excel. Comment puis-je faire Excel trouver un document dans ce document Word pour chaque ligne dans cette seule colonne et récupérer le nombre de fois que la chaîne donnée apparaît? J'ai seulement Office 2003.Demandez à Excel 2003 de rechercher un document dans un document Word et de renvoyer le nombre d'occurrences.

Merci!

Répondre

2

Voici un exemple de macro Excel qui compte le nombre de correspondances et l'écrit en regard des chaînes recherchées. Je l'ai essayé avec Office 2007, mais cela devrait aussi fonctionner avec 2003. La macro utilise des expressions régulières, vous devez donc ajouter une référence à la bibliothèque "Microsoft VBScript Regular Expressions" à votre projet VBA (Visual Basic Editor -> Outils -> Références).

Sub GetMatchCount() 
    Dim Text, i, re 

    ' Replace with your Word document name 
    Const WordFileName = "C:\Test.doc" 

    With CreateObject("Word.Application") 
    .Documents.Open (WordFileName) 
    Text = .ActiveDocument.Range.Text 
    .Quit 
    End With 

    Set re = New RegExp 
    re.Global = True 

    With ActiveSheet.UsedRange 
    For i = 1 To .Rows.Count 
     re.Pattern = .Cells(i, 1).Value 
     .Cells(i, 2).Value = re.Execute(Text).Count 
    Next 
    End With 
End Sub 
+0

Cela a fait exactement ce que je voulais. MERCI! –

Questions connexes