2

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

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

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

см. раздел 2.3.4 2.3.42.3.42.3.4

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

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

Спасибо,
Зося

2 ответа2

1

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

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

РЕДАКТИРОВАТЬ: я написал следующий макрос, который должен удалить такие ненужные ревизии из полей. Возможно, потребуется некоторое улучшение скорости, если это возможно.

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 
1

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

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

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