Итак, у меня есть текстовый файл с определенными ключевыми словами, по одному в каждой строке, которые необходимо импортировать в VBA. Ключевые слова будут использоваться в цикле поиска для проверки других документов. Для этого я использовал это объяснение: https://www.techrepublic.com/article/macro-trick-how-to-highlight-multiple-search-strings-in-a-word-document/. Однако это не является надежным, так как слова жестко закодированы, а размер списка ключевых слов необходимо определить априори.
Итак, теперь я импортировал текстовый файл в Word VBA, сначала посчитал все строки, установил размер списка ключевых слов, а затем повторил цикл по текстовому файлу, пытаясь определить каждый индекс списка ключевых слов. Однако последний бит терпит неудачу. Используя F8, я дважды проверил, что код получил правильное слово, но «keywordlist (i) = textline», похоже, фактически не анализирует текстовую строку в списке.
Что здесь не так?
sub getkeywords
On Error Resume Next
MsgBox "Select text file with keywords."
On Error GoTo 0
Dim keyfile As String, textline As String
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Select Text Files"
.Filters.Clear
.Filters.Add "Text files", "*.txt"
.InitialView = msoFileDialogViewDetails
.Show
On Error Resume Next
keyfile = .SelectedItems(1)
Err.Clear
On Error GoTo 0
End With
Open keyfile For Input As #1
Dim i As Integer
Do Until EOF(1)
Line Input #1, textline
i = i + 1
Loop
Dim j As Integer
j = i - 1
Dim keywordlist() As String
ReDim keywordlist(0 To j) As String
i = 0
Do Until EOF(1)
Line Input #1, textline
keywordlist(i) = textline
i = i + 1
Loop
Close #1
end sub