Nagłówki / stopki Excel nie zmienią się za pośrednictwem VBA, chyba że są puste
Zastrzeżenie: Minęło kilka lat odkąd pracowałem (dużo) z VBA, więc może to być problem spowodowany myleniem się z tym, co jest zasadniczo innym językiem niż to, z którym zwykle się spotykam.
Więc; Mam skoroszyt (Excel 2010) z wieloma arkuszami (20+), z których większość to wielostronicowe. Aby ułatwić sobie drukowanie wszystkiego, chcę dodać nagłówki specyficzne dla arkusza, między innymi nazwę arkusza, liczbę stron i tak dalej.
Napisałem małą funkcję, która powinna (teoretycznie) zrobić to dla mnie, powtarzając wszystkie arkusze ustawiające nagłówek. Jednak z jakiegoś powodu działa tylko wtedy, gdy nagłówek jest pusty; jeśli ma już wartość, odmawia nadpisania z nieznanego powodu.
Dim sheetIndex, numsheets As Integer
sheetIndex = 1
numsheets = Sheets.Count
' Loop through each sheet, but don't set any of them to active
While sheetIndex <= numsheets
Dim sheetname, role, labeltext As String
sheetname = Sheets(sheetIndex).name
role = GetRole(mode)
labeltext = "Some text - " & sheetname & " - " & role
With Sheets(sheetIndex).PageSetup
.LeftHeader = labeltext
.CenterHeader = ""
.RightHeader = "Page &[Page] / &[Pages]"
.LeftFooter = "&[Date] - &[Time]"
.CenterFooter = ""
.RightFooter = "Page &P / &N"
End With
sheetIndex = sheetIndex + 1
Wend