MS Word VBA Erro: “O item com o nome especificado não foi encontrado”

1

Estou tentando configurar uma macro para ajustar o código de campo dos itens de referência cruzada, de modo que apenas os números sejam exibidos, por exemplo, 3 em vez da Figura 3.

Encontrei on-line que \# "0" pode ser adicionado ao código de campo para fazer isso e isso funciona. Eu preciso fazer isso com bastante frequência, então eu tentei configurar uma macro gravando minhas teclas. Esta é a macro:

Sub Macro1() ' ' Macro1 Macro ' ' Selection.MoveLeft Unit:=wdCharacter, Count:=1 ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes ActiveDocument.Shapes.Range(Array("Text Box 62")).Select Selection.TypeText Text:="# ""0""" ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes ActiveDocument.Shapes.Range(Array("Text Box 62")).Select End Sub

Infelizmente, isso não funciona. Os códigos de campo aparecem depois que eu o executo, mas a macro acaba depois disso e eu recebo o seguinte erro:

Microsoft Visual Basic

Run-time error '9':

The item with the specified name wasn't found.

Eu não tenho ideia de como consertar isso e realmente aprecio qualquer ajuda.

    
por Marouf 23.12.2016 / 02:20

1 resposta

1

Para simular a situação que você descreveu, inseri dois gráficos, inseri legendas e finalmente inseri duas referências cruzadas. Como resultado, obtive dois campos com textos: Figura 1 e Figura 2 .

Eu usei suas descobertas no \# "0" bit e reuni a macro a seguir, que remove o texto 'Figura', deixando apenas números. Ele só funciona para o campo Ref agora, mas eu acho que pode ser usado também para outros tipos de campos listados na enumeração WdFieldType.

Sub UpdateFieldCodes()
    For Each Field In ActiveDocument.Fields
        If Field.Type = wdFieldRef Then
            Field.Code.Text = Field.Code.Text & " \# ""0"""
            Field.Update
        End If
    Next
End Sub
    
por 28.12.2016 / 15:29