Динамический импорт текста из текстового файла в Word VBA - PullRequest
0 голосов
/ 11 мая 2018

Итак, у меня есть текстовый файл с определенными ключевыми словами, по одному в каждой строке, которые необходимо импортировать в 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

1 Ответ

0 голосов
/ 11 мая 2018

Я нашел ошибку. После первого цикла «До» код игнорирует файл и, следовательно, второй цикл «До» не выполняется. Простым решением было разместить Close # 1 и Open # 1 перед вторым циклом. Может быть не красиво, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...