Контекст: Я пишу макрос Word VBA, который проходит через каждое слово в документе, идентифицирует акронимы и создает список сокращенных имен в качестве нового документа. Следующим шагом будет определение того, находится ли аббревиатура в круглых скобках (что, вероятно, указано), в первом случае. Итак, я хотел бы расширить диапазон, чтобы узнать, являются ли символы по обе стороны слова «(» и «)».Слово VBA Диапазон от слов Объект
Проблема: Я не могу понять, как назначить диапазон слова переменной диапазона, которую я затем могу расширить. Использование «rngWord = ActiveDocument.Words (k)» (где k - переменная счетчика) получает ошибку # 91, Object Variable или с переменной блока, которая не задана. Так что предположительно есть метод или свойство для слов, которые мне не хватает. Однако на основе ссылки VBA от Microsoft, члены коллекции Words уже имеют диапазоны, поэтому я не понимаю, почему я не могу назначить ее переменной диапазона.
Dim intArrayCount As Integer
Dim booAcroMatchesArray As Boolean
Dim intNextAcro As Integer
Dim strAcros(1000) As String
Dim strContext(1000) As String
Dim booAcroDefined(1000) As Boolean
Dim strTestMessage As String
i = 1
booAcroMatchesArray = False
intNextAcro = 1
For k = 1 To ActiveDocument.Words.Count
strWord = ActiveDocument.Words(k).Text
rngWord = ActiveDocument.Words(k) //The line that's missing something
MsgBox strWord
rngWord.Expand Unit:=wdCharacter
strWordPlus = rngWord
MsgBox strWordPlus
strWord = Trim(strWord)
If strWord = UCase(strWord) And Len(strWord) >= 2 And IsLetter(Left(strWord, 1)) = True Then
'MsgBox ("Word = " & strWord & " and Length = " & Len(strWord))
For intArrayCount = 1 To 1000
If strWord = strAcros(intArrayCount) Then booAcroMatchesArray = True
Next intArrayCount
'MsgBox ("Word = " & strWord & " Match = " & booAcroMatchesArray)
If booAcroMatchesArray = False Then
strAcros(intNextAcro) = strWord
intNextAcro = intNextAcro + 1
End If
booAcroMatchesArray = False
End If
Next k