У меня есть документ Word, в котором я запускаю макрос для поиска стиля Regular
.
Мой код ниже:
If styleExisted = False Then
For Each oRange1 In ActiveDocument.StoryRanges
If oRange1.Characters.count > 0 And found = False Then
oRange1.Select
With Selection.Find
.Style = "Regular"
End With
Selection.Find.Execute
If Selection.Find.found = True Then
test = Selection.range.Text
found = True
styleExisted = True
End If
End If
Next oRange1
End If
Однако макрос дает мнеложное утверждение о том, что в документе присутствует контент со стилем.Я не могу найти никакого содержимого, когда использую диалоговое окно «Найти» с выбранным стилем.
При отладке кода test
получает первый блок текста в документе.Когда я явно добавил текст со стилем, новый текст выбирается, как и ожидалось.
При сохранении файла в формате .docx
и проверке файла document.xml
я обнаружил следующее содержимое.
<w:tc>
<w:tcPr>
<w:tcW w:w="1074" w:type="pct"/>
</w:tcPr>
<w:p w:rsidR="004B7F7E" w:rsidRPr="006E4FD7" w:rsidRDefault="004B7F7E" w:rsidP="006E4FD7">
<w:pPr>
<w:pStyle w:val="TableHead"/>
<w:spacing w:after="0"/>
<w:jc w:val="left"/>
<w:rPr>
<w:rStyle w:val="Regular"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="006E4FD7">
<w:rPr>
<w:bCs/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
</w:rPr>
Как я могу обойти этот ложный положительный результат?
Это происходит только для некоторых документов, что действительно сбивает с толку.
РЕДАКТИРОВАТЬ: Когда я добавил нормальный контент из другогодокумент и поместите его в начало, первый блок в новом контенте выбирается.
Кроме того, в начале был бы некоторый текст-заполнитель (из пользовательского шаблона) в стиле Regular
;это было бы удалено, когда документ был подготовлен.