Как я могу установить одинаковые колонтитулы для всех листов, в том числе новых?

0

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

ProfK
источник

Ответы:

0

В качестве первой попытки я бы использовал это событие:

Private Sub Workbook_NewSheet(ByVal Sh As Object)
   sh.range("A1").value = "xxx"
End Sub

вам нужно будет добавить этот макрос в рабочую книгу, а не в рабочую таблицу, а не как модуль или класс.

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

Jook
источник
0

Вот код VBA для копирования верхнего и нижнего колонтитула с первого листа на новый. Вставьте это ThisWorkbookв VBA Explorer ( Alt+ F11) и сохраните. Он запустится, когда вы добавите новый лист.

Отрегулируйте 4-ую строку, где она читается Sheet1, чтобы быть названием вашего первого листа.

Private Sub Workbook_NewSheet(ByVal Sh As Object)
   Dim Ws As Worksheet
   'Change "Sheet1" below to the name of sheet being copied
   Set Setup = Worksheets("Sheet1").PageSetup
    With ActiveSheet.PageSetup
     .LeftHeader = Setup.LeftHeader
     .CenterHeader = Setup.CenterHeader
     .RightHeader = Setup.RightHeader
     .LeftFooter = Setup.LeftFooter
     .CenterFooter = Setup.CenterFooter
     .RightFooter = Setup.RightFooter
     End With
End Sub

Если вы хотите запустить его вручную, измените первую строку на

Sub CopyHeaderFooter()

Затем он будет отображаться как работающий макрос ( Alt+ F8), названный по имени, который CopyHeaderFooterвы можете выполнить, когда захотите.

CharlieRB
источник
Я бы предпочел не копировать его на все листы, только на новый, на случай, если я настрою заголовок на одном листе.
ProfK
Сожалею. Виноват. Сначала я собирался все скопировать, но поменял. Этот код копирует только на новый лист, а не на все листы.
CharlieRB