gpt4 book ai didi

vba - Excel 页眉/页脚不会通过 VBA 更改,除非为空

转载 作者:行者123 更新时间:2023-12-01 21:45:32 24 4
gpt4 key购买 nike

免责声明:自从我(大量)使用 VBA 以来已经有几年了,所以这可能是由于我自己混淆了一种与我通常处理的语言本质上非常不同的语言而引起的问题。

所以;我有一个包含多张工作表(20+)的工作簿(Excel 2010),其中大多数是多页的。为了使打印所有内容时变得更容易,我想添加一些特定于工作表的标题,其中包括工作表名称、页数等。

我编写了一个小函数,(理论上)它应该通过迭代设置标题的所有工作表来为我完成此操作。然而,由于某种原因,它仅在 header 为空时才有效;如果它已经有一个值,它会由于某种未知的原因拒绝覆盖。

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

最佳答案

我找到了一个似乎适用于替换文本的解决方案。无论出于何种原因,在宏中,您需要包含 header/footer format character codes以便其正常工作。

此代码用于用新信息替换现有的标题文本:

Sub test()
Dim sht As Worksheet
Set sht = Worksheets(1)
sht.PageSetup.LeftHeader = "&L left text"
sht.PageSetup.CenterHeader = "&C center Text"
sht.PageSetup.RightHeader = "&R right text"
End Sub

如果文本前面没有 &L&C&R 代码,我无法让它工作。

我发现一些有趣的行为是,如果您使用以下代码:

.CenterHeader = "&L some text"

它实际上会将一些文本放在LeftHeader位置。这让我相信格式化代码非常重要。

关于vba - Excel 页眉/页脚不会通过 VBA 更改,除非为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18601744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com