Пусть Excel 2003 выполнит поиск в документе Word и выдаст количество случаев - PullRequest
0 голосов
/ 28 мая 2009

У меня есть документ Excel с одним столбцом строк (около 400 строк). У меня также есть документ Word, который может иметь или не иметь эти строки в документе Excel. Как сделать так, чтобы Excel выполнял поиск в этом документе Word для каждой строки в этом отдельном столбце и извлекал число раз, когда данная строка появляется? У меня только Office 2003.

Спасибо!

1 Ответ

2 голосов
/ 29 мая 2009

Вот пример макроса Excel, который считает количество совпадений и записывает его рядом с искомыми строками. Я пробовал это с Office 2007, но это должно работать и с 2003. Макрос использует регулярные выражения, поэтому вам необходимо добавить ссылку на библиотеку «Регулярные выражения Microsoft VBScript» в проект VBA (редактор Visual Basic -> Инструменты -> Ссылки).

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
...