Я новичок в VBA и пытаюсь создать проект для работы.Мы нанимаем транскрипционистов на основе тестового файла, который они слушают и набирают.Я пытался написать макрос, который будет искать в тестах определенные ключевые слова (некоторые из которых используются в тесте несколько раз), а затем выдаст сообщение с результатами.Таким образом, мы можем оценить компетентность с первого взгляда.
Я собрал вместе прототип, но есть одна главная проблема: счетчик, кажется, не считает правильно.Я тестирую его на примере файла, содержащего все необходимые ключевые слова, но он зарегистрирует только половину из них.Я не уверен, в чем проблема, и был бы признателен за любую информацию.
Мой код приведен ниже, а скриншот полученного окна сообщения прилагается.
Sub WordCountTest()
' WordCountTest Macro
'create definitions for search
Dim wrd As range
Dim var As Variant
Dim searchlist()
Dim numfound() As Integer
Dim idx As Integer
Dim strResults As String
'necessary search terms
searchlist = Array("Deposition Subpoena", "Amend Notice of Deposition", _
"fellowed", "corneal", "refractive", "LASIK", _
"1989", "Cedars-Sinai", "Capital", _
"January 28 2016", "technicians'", _
"topography", "OCT", "sclera", _
"limbus sclerocorneal", "fundoscopy", _
"Indirect ophthalmoscope", "diopter", _
"Keratometry", "Tomey", _
"Cirrus OCT tomographer", _
"No, not on the front", "ablation")
'searching text
ReDim numfound(0 To UBound(searchlist))
For Each wrd In ActiveDocument.Words
idx = 0
For Each var In searchlist
If Trim(wrd.Text) = searchlist(idx) Then
numfound(idx) = numfound(idx) + 1
End If
idx = idx + 1
Next var
Next wrd
idx = 0
For Each var In searchlist
strResults = strResults & searchlist(idx) & " : " & _
numfound(idx) & vbCr
idx = idx + 1
Next var
MsgBox strResults
End Sub