Como parar um loop de macro do Word no final de um documento?

0

Eu tenho um grande conjunto de documentos onde os cabeçalhos são numerados manualmente. Eu defino os estilos de título para numerar automaticamente, mas agora quero excluir os números manuais.

Portanto, eu tenho a macro a seguir (para o Título 2) que encontra o 'Título 2' e remove os números manuais, depois repete a ação.

O problema é que não pára no final do documento. Como faço para que a macro termine quando chegar ao final do documento?

Este é o código:

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
    
por Ben 26.04.2017 / 09:14

1 resposta

0

Você provavelmente precisa definir a propriedade .Wrap de .Find

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

Find.Wrap Property:

Returns or sets what happens if the search begins at a point other than the beginning of the document and the end of the document is reached (or vice versa if Forward is set to False) or if the search text isn't found in the specified selection or range. Read/write WdFindWrap.

de aqui

    
por 26.04.2017 / 09:23