Автор Тема: Word VBA Макросы: Как разбить число (номер страницы) на цифры и записать цифры в таблицу в верхний колонтитул?  (Прочитано 81 раз)

Оффлайн stl.vvv

  • Посетитель форума
  • Сообщений: 2
Необходима автоматическая нумерация в Верхнем колонтитуле документа. В колонтитуле вставлена таблица из одной строки и из шести столбцов, где одна ячейка - это одна цифра нумерации.
Страниц много (минимум 20).
Нумерация первой страницы начинается с числа, которое указано на первой странице.

Оффлайн Администратор

  • Administrator
  • Сообщений: 1726
Предполагается:
1) что во всех разделах тип верхнего колонтитула "Верхний колонтитул" (есть ещё типы: Колонтитул первой страницы, Колонтитулы чётных / нечётных страниц);
2) перед началом макроса в таблице, в столбцах 4 - 9 должны быть нули, т.к. макрос работает только с теми ячейками, которые надо заполнить.

Макрос
Sub Макрос()

    Dim раздел As Section, табл As Table
    Dim НомерСтраницы As Long
    Dim c As Long, j As Long
   
   
    ' Запись начального номера страницы в переменную.
    НомерСтраницы = 10
   
    ' Движение по всем разделам.
    For Each раздел In ActiveDocument.Sections
   
        ' Присваеим имя "табл" таблице, которая находится в верхнем колонтитуле в текущем разделе.
        Set табл = раздел.Headers(wdHeaderFooterPrimary).Range.Tables(1)
       
        ' Заполнение ячеек таблицы.
            ' Предполагается, что изначально во всех ячейках нули.
        ' Переменная "c" нужна для перемещения по столбцам таблицы.
        c = 9
        ' Движение по цифрам номера страницы справа налево.
        For j = Len(CStr(НомерСтраницы)) To 1 Step -1
            табл.Cell(1, c).Range.Text = Mid(НомерСтраницы, j, 1)
            c = c - 1
        Next j
       
        ' Изменение числа в переменной.
        НомерСтраницы = НомерСтраницы + 1
       
    Next раздел
   
    ' Сообщение.
    MsgBox "Готово.", vbInformation

End Sub

Оффлайн Администратор

  • Administrator
  • Сообщений: 1726
Re: Автоматическая нумерация
« Ответ #2 : 28 Ноябрь 2019, 20:38 »
Написал вам письмо на почту с заголовком "Письмо с форума". Написал именно на почту, а не на форум.

Оффлайн stl.vvv

  • Посетитель форума
  • Сообщений: 2

Оффлайн Администратор

  • Administrator
  • Сообщений: 1726
написал вам ещё на почту (с другим содержимым)