У меня есть большой набор документов, где заголовки нумеруются вручную. Я установил стили заголовков для нумерации автоматически, но теперь я хочу удалить номера вручную.

Итак, у меня есть следующий макрос (для заголовка 2), который находит «заголовок 2» и удаляет номера руководства, а затем повторяет действие.

Проблема в том, что он не останавливается в конце документа. Как заставить макрос завершиться, когда он достигнет конца документа?

Вот код:

Sub FixHeading2()
'
' FixHeading2 Macro fixes he numbering for Heading 2
'
Selection.HomeKey Unit:=wdStory
    Selection.Find.Style = ActiveDocument.Styles("Heading 2")
Selection.Find.Execute
While Selection.Find.Found
    Selection.HomeKey Unit:=wdLine
    Selection.MoveRight Unit:=wdWord, Count:=3, Extend:=wdExtend
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.Find.Execute
Wend
End Sub

1 ответ1

0

Вам, вероятно, нужно установить .Wrap свойство .Find

...
Selection.Find.Style = ActiveDocument.Styles("Heading 2")
Selection.Find.Wrap = wdFindStop
...

Найти.Свойство Wrap:

Возвращает или задает, что происходит, если поиск начинается в точке, отличной от начала документа, и достигнут конец документа (или наоборот, если для параметра «Вперед» задано значение «Ложь») или если текст поиска не найден в указанном выбор или диапазон. Чтение / запись WdFindWrap.

отсюда

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .