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

questionAnswers(4)

yourAnswerToTheQuestion