Каждый гугл для применения одного и того же заголовка говорит выделить все листы и установить заголовок. Как я могу гарантировать, что новые листы, которые я добавляю, также получат тот же заголовок, но не всегда
2 ответа
В качестве первой попытки я бы использовал это событие:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
sh.range("A1").value = "xxx"
End Sub
вам нужно будет добавить этот макрос в рабочую книгу, а не в рабочую таблицу, а не как модуль или класс.
Другим способом может быть использование надстройки, предназначенной для этого, - это делается для того, чтобы такое поведение присутствовало в каждой книге.
Вот код 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
вы можете выполнить, когда захотите.