Обновление полей SEQ Word 2013

Я пишу макрос VBA для обновления ТОЛЬКО Selection.GoTo What: = wdGoToField, который: = wdGoToNext, Count: = 1, Name: = "SEQ" поля в документах Word 2013. Я разработал его для использования GoTo для посещения каждого поля SEQ по одному от начала до конца документа (NOT Update All), чтобы я пропускал другие типы полей. Я изо всех сил стараюсь сделать цикл для каждого поля SEQ до тех пор, пока не будет достигнут конец документа. Я хочу, чтобы он работал в любом документе, независимо от закладок или других конечных маркеров.

Вот код, который я до сих пор (с комментариями):

ActiveWindow.View.FieldShading = wdFieldShadingAlways 'перейти к началу документа Selection.HomeKey Unit: = wdStory' Перейти в первое поле SEQ

Function UpdateSpecificFields(MyFieldCode As String)

Dim MyField As Field

    For Each MyField In ActiveDocument.Fields

'        Debug.Print """" & MyField.Code & """" & MyField.Result

        If InStr(1, MyField.Code, MyFieldCode) <> 0 Then
            MyField.Update
        End If

    Next MyField

End Function

'Selection.Find.ClearFormatting

'пока есть больше кодов полей, обновите это и перейдите к следующему: Do While Selection.GoToNext.wdGoToField = True Selection.Fields.Update Loop

field,seq,word-2013,

1

Ответов: 1


1

Немного поздно, но ваш вопрос возник, когда я искал тот же ответ. :-)

Для гибкости фактическая работа выполняется как функция, где код поля принимается как строка. Таким образом, я могу вызывать функцию с любым желаемым кодом поля, а не обязательно с определенным SEQ или любым кодом поля.

MyField.Type = wdFieldSequence

Мы перебираем все поля в активном документе. Вы можете включить проверку того, следует ли trim()уменьшить ненужную работу.

InStr существует в случае нечетного интервала; иногда создатель поля может включать дополнительное пространство до или после самого кода, поэтому я не хотел быть слишком буквальным. (Полагаю, что нужно было Sub UpdateSEQQs() UpdateSpecificFields ("SEQ Qs") End Sub избавиться от указанных пространств, но я немного ленился).

Использование: вызов функции из под.

SEQ

У меня есть SEQзвонок Qs, так что вы можете видеть, как его называли выше. Надеюсь, это поможет кому-то!

поле, далее, слово-2013,
Похожие вопросы