Zrzeczenie się: Minęło kilka lat odkąd pracowałem (dużo) z VBA, więc może to być problem spowodowany przez zmieszanie się z tym, co zasadniczo jest bardzo innym językiem z tego, z czym zwykle mam do czynienia.Nagłówki/stopki Excela nie zmienią się przez VBA, chyba że puste
Tak; Mam skoroszyt (Excel 2010) z wieloma arkuszami (20+), z których większość ma wiele stron. Aby ułatwić drukowanie wszystkiego, chcę dodać nagłówki specyficzne dla arkusza, między innymi nazwę arkusza, liczbę stron i tak dalej.
Napisałem niewielką funkcję, która powinna (teoretycznie) zrobić to dla mnie przez iterację nad wszystkimi arkuszami ustawiającymi nagłówek. Jednak z jakiegoś powodu działa tylko wtedy, gdy nagłówek jest pusty; jeśli ma już wartość, odmawia zastąpienia 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
Bardzo dziwne zachowanie. Mogę zduplikować twój problem w programie Excel 2010. Nawet jeśli nagrywam makro, gdy ręcznie zmieniam nagłówek, a następnie uruchomę to makro, nie będzie działać poprawnie. Pozornie przypadkowe zachowanie dotyczące dodawania fragmentów tekstu nagłówka. – Stewbob
Tak, miałem również pewne problemy przy dodawaniu okładek do innych części nagłówka; z jakiegoś powodu Excel usuwa część magicznych słów (zastępując np. & [Pages] za pomocą & [Pa), czyniąc cały nagłówek bezużytecznym. Dzieje się tak tylko wtedy, gdy nagłówek jest edytowany przez makro, np. jeśli zmieni LeftHeader będzie to zepsuć RightHeader – bjelleklang
Nie mając Excel 2010 proszę zignorować mnie - ale jestem ciekawy wiedzieć, że efekt, jeśli w ogóle, komentowania 'rola = GetRole (Mode)' – pnuts