1

Тема: [решено] Вставить поле (Field.Add) в таблицу нижнего колонтитула

В нижнем колонтитуле есть таблица. С помощью макроса я могу заполнять эти ячейки текстом. Например:

Activedocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Tables(1).columns(1).Cells(1).Range.Text = "текст"

А как вместо текста вставить туда поле?
Я пробовал так:

Activedocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Tables(1).columns(1).Cells(1).Range.Fields.Add Range:=Selection.Range, Type:=wdFieldPage

И так тоже пробовал:

Activedocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Tables(1).columns(1).Cells(1).Range.Fields.Add Range:=Activedocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Tables(1).columns(1).Cells(1).Range, Type:=wdFieldPage

Всё время пишет, что команда недоступна.
А если использовать эту команду в тексте (не в колонтитуле) -- работает

Activedocument.Fields.Add Range:=Selection.Range, Type:=wdFieldPage

2

Re: [решено] Вставить поле (Field.Add) в таблицу нижнего колонтитула

Перед вставкой поля в диапазон, если это целая ячейка таблицы, нужно из диапазона удалить символ конца ячейки. Это можно сделать несколькими способами: свернуть диапазон к началу или концу (Collapse) или сдвинуть конец диапазона на 1 символ влево (MoveEnd wdCharacter, -1)

Dim r As Range
 Set r = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Tables(1).Columns(1).Cells(1).Range
 r.Collapse wdCollapseStart
 r.Fields.Add r, wdFieldPage
Лучше день потерять — потом за пять минут долететь!

3

Re: [решено] Вставить поле (Field.Add) в таблицу нижнего колонтитула

Работает! smile