Как установить одинаковый верхний/нижний колонтитул для всех рабочих листов, включая новые?

Как установить одинаковый верхний/нижний колонтитул для всех рабочих листов, включая новые?

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

решение1

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

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

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

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

решение2

Вот код 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который вы можете выполнить, когда захотите.

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