Как заставить Word не отмечать исправление для обновления поля, результат которого не изменился?

Как заставить Word не отмечать исправление для обновления поля, результат которого не изменился?

Я использую Word 2010. Насколько мне известно, эта проблема существовала в Word с незапамятных времен.

Когда я создаю поле в документе, поле обновляется, когда я принудительно это делаю (например, с помощью F9 или выбора меню правой кнопки мыши) или как побочный эффект открытия или печати файла. Все это хорошо — именно поэтому я использовал поле. Конечно, в большинстве случаев (иногда большую часть времени) обновление поля не приводит к изменению результирующего текста. Например, {numpages} или перекрестная ссылка или имя файла, скорее всего, не изменятся.

К сожалению, если у меня включено отслеживание изменений, каждое обновление поля помечается перечеркнутым (удаленным) старым результатом и вставленным новым значением. Это происходит даже если значение не изменилось. После нескольких эпизодов открытия, закрытия, печати, обновления и т. д. вы можете получить что-то вроде этого (в этом примере я использовал жирный шрифт вместо подчеркивания из-за ограничений редактора) для перекрестной ссылки

см. раздел2.3.42.3.42.3.42.3.4

IMHO, Word не должен считать это правкой, если текст результата не изменился. Если есть способ заставить Word сделать это в первую очередь, я хотел бы узнать об этом.

В качестве альтернативы, если есть какой-то способ легко удалить эти лишние (не)ревизии из моего документа (при этом сохранив все «настоящие» ревизии), это было бы еще одним решением моей проблемы.

Спасибо,
Йош.

решение1

Не полное решение, но вы можете избежать дублирования ревизий, отключив отслеживаемые ревизии непосредственно перед обновлением, а затем включив их снова после завершения обновления. Вы можете пойти дальше и привязать макрос к сочетанию клавиш, чтобы автоматически выполнять эти шаги.

Боюсь, это не поможет, если поля обновляются автоматически перед печатью, однако вы можете отключить это поведение, перейдя в меню параметров, вОтображатьи снять галочкуОбновите поля перед печатью.

EDIT: Я написал следующий макрос, который должен удалить такие ненужные правки из полей. Возможно, потребуются некоторые улучшения скорости, если это возможно.

Sub RemoveUnchangedFieldTrackedChanges()

    Dim oField As Field
    Dim oRevision As Revision

    For Each oField In ActiveDocument.Fields
        For Each oRevision In oField.Parent.Range.Revisions
            Select Case oRevision.Type
            Case wdRevisionInsert
                With oRevision
                    revisionText = .Range.Text

                        For Each iRevision In oField.Parent.Range.Revisions
                            Select Case iRevision.Type
                            Case wdRevisionDelete
                                With iRevision

                                If StrComp(revisionText, iRevision.Range, vbTextCompare) = 0 Then
                                    oRevision.Accept
                                    iRevision.Accept
                                End If

                            End With
                            End Select
                         Next iRevision

                        End With
                End Select
         Next oRevision
    Next oField
End Sub 

решение2

Недавно я понял, что решение поставленного мной вопроса — вообще НЕ использовать маркировку ревизий. Вместо этого, после того как я закончу все свои изменения, я использую Compare Files для создания версии документа с маркировкой Rev. При сравнении я обязательноне выбрать the Поляопция в настройках сравнения:

введите описание изображения здесь

Так как обычно меня это не волнуетФорматированиеиПустое пространствоизменения Я также отменяю выбор этих опций. Окончательный результат (я обычно выбираю создатьНовый документ) дает мне документ с существенными изменениями и без неважных и отвлекающих (не)изменений (вроде значений полей).

Связанный контент