免责声明:自从我(很多)使用 VBA 以来已经有几年了,所以这可能是一个问题,因为我把自己与本质上与我通常处理的语言完全不同的语言混淆了。
所以; 我有一个包含多张工作表(20+)的工作簿(Excel 2010),其中大多数是多页的。为了使打印所有内容时更容易,我想添加一些特定于工作表的标题,其中包括工作表名称、页数等。
我已经编写了一个小函数,它应该(理论上)通过遍历设置标题的所有工作表来为我做到这一点。但是,由于某种原因,它仅在标题为空时才有效;如果它已经有一个值,它会出于某种未知原因拒绝覆盖。
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