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