Существуют разные способы достижения того, что вы хотите. Вот один из способов найти текст в VBA Word без разделителей , используя Regex . Допустим, у вас есть следующий текст в документе Word (не копируйте и не вставляйте его отсюда, поскольку веб-сайт искажает двойные кавычки. См. Скриншот)
Это образец
"Это еще один образец"
"Разбуди меня, прежде чем идти"
"Война миров"
Код для возврата текста с использованием регулярных выражений между двумя кавычками:
Sub FindText()
Dim regEx, Match, Matches
Set regEx = New RegExp
regEx.Pattern = "([^“]*)(?=\”)"
regEx.IgnoreCase = False
regEx.Global = True
Set Matches = regEx.Execute(ActiveDocument.Range.Text)
For Each Match In Matches
Debug.Print Match.Value
Next
End Sub
и если вы хотите сказать, найти "Wake me up before you go go"
без кавычек, то вы также можете использовать это
Sub FindText()
Dim regEx, Match, Matches
Dim searchText As String
searchText = "Wake me up before you go go"
Set regEx = New RegExp
regEx.Pattern = "([^“]*)(?=\”)"
regEx.IgnoreCase = False
regEx.Global = True
Set Matches = regEx.Execute(ActiveDocument.Range.Text)
For Each Match In Matches
If Trim(Match.Value) = (searchText) Then
Debug.Print "Found"
End If
Next
End Sub
ПРИМЕЧАНИЕ: Сайт искажает фактическую двойную кавычку, поэтому я публикую скриншоты.
Followup
Для примера файла, который вы разместили, используйте этот код
Sub FindText()
Dim regEx, Match, Matches
Set regEx = New RegExp
regEx.Pattern = """([^""]*)"""
regEx.IgnoreCase = False
regEx.Global = True
Set Matches = regEx.Execute(ActiveDocument.Range.Text)
For Each Match In Matches
Debug.Print Match.SubMatches(0)
Next
End Sub
Образец файла можно скачать здесь. Обратите внимание, что эта ссылка будет активна в течение 7 дней.
Образец файла
НТН
* * Сид тысяча сорок-девять