Используйте таблицу для обновления полей в Word

Используйте таблицу для обновления полей в Word

Я хотел бы реализовать следующую функциональность в своих отчетах MS Word. Не уверен, как это возможно и возможно ли это вообще.

Вот изображение, которое я имею в виду, для справки:

пример того, что я хочу

  1. В начале отчета включите таблицу входных данных, содержащую все параметры.
  2. По всему содержанию отчета настройте поля, которые будут меняться при изменении входных данных в таблице.
  3. Пример: ПАРАМЕТР 1 установлен на 100, все ПАРАМЕТРЫ 1 в разделе «Содержимое» автоматически изменятся на 100.

Спасибо

решение1

Я думаю, вам нужно реализовать это требование с помощью VBA.

Откройте консоль VBA: нажмите «Alt + F11».

Вот макрос, сгенерированный при записи экрана, на который вы можете ссылаться:

Sub Macro5()
Selection.TypeText Text:="100"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
        .Text = "parameter1"
        .Replacement.Text = "100"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.TypeText Text:="200"
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "parameter2"
        .Replacement.Text = "200"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.TypeText Text:="300"
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "parameter3"
        .Replacement.Text = "300"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Для управления значением переменной вам нужно изменить только следующие два параметра:

Тип Текст Текст:="XX" Замена.Текст = "XX"

решение2

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

Вот шаги с нуля (для последней версии Word для Windows):

  1. Создать новый документ
  2. Перейдите в Файл ➡ Свойства (вверху справа) ➡ Дополнительные свойства:

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

  1. Затем в появившемся окне перейдите на вкладку «Пользовательский».
  2. Здесь вы можете создать пользовательские свойства документа, которые можно использовать для хранения значений параметров, как показано в следующем GIF-изображении (извините за опечатку):

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

  1. Теперь вернитесь к документу. Там вы можете использоватьполевые кодыдля отображения свойств документа.

  2. Самый простой — перейти в то место, где вы хотите разместить текст параметра, нажать CTRL+ F9, ввести текст DOCPROPERTY parameter_name \* MERGEFORMATи нажать , F9чтобы обновить все коды полей в документе (включая тот, который вы только что создали):

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

  1. Повторите это в каждом месте, где вы хотите, чтобы отображались параметры.

Чтобы изменить значение параметра во всем документе, обновите его в дополнительных свойствах (шаг 2-3), вернитесь в документ и обновите все коды полей, нажав F9.

Вот короткая демонстрация:

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

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