【问题标题】:Format codes for first page header/footer are different首页页眉/页脚的格式代码不同
【发布时间】:2020-07-22 18:59:42
【问题描述】:

我想使用 VBA 为应打印的 Excel 2013 工作表的第一页设置不同的页眉和页脚。页眉和页脚应包含页码、活动工作表的名称和文件名等信息。有关格式代码的官方 Microsoft 文档 (https://docs.microsoft.com/en-us/office/vba/excel/concepts/workbooks-and-worksheets/formatting-and-vba-codes-for-headers-and-footers) 为此提供了各种选项,并且所有这些格式代码在每个页面上都能正常工作,除了第一个页面 - 它们似乎分配不同(例如,“&N”应该显示数字页数,但显示文件名)。如何为首页页眉/页脚使用正确的格式代码?

我尝试将这些格式代码分配给常量,但这不起作用,因为代码仅在包含在页眉或页脚字符串中时才会被解析。我还在手动更改标题时录制了一个宏(可以正常工作),但该宏也不会产生正确的输出。

Sub formatCodesTest()
    With ActiveSheet.PageSetup
        .DifferentFirstPageHeaderFooter = True
        .FirstPage.LeftHeader.Text = "&N"
    End With
    ActiveSheet.PrintPreview
End Sub

我希望输出是页数(如 Microsoft 文档中所述),但实际输出是文件名。

【问题讨论】:

  • 您的代码在 Excel 2010 和 2013 中运行良好。了解您使用的 Excel 版本可能很有用。
  • 在 2016 年也能正常工作,你确定标题是空白的吗?有没有检查自定义的header接口,确保没有&F
  • @cybernetic.nomad 我使用 Excel 2013。我再次尝试使用新文件和空白标题,但问题仍然存在,标题 GUI 还显示“&[Datei]”(德语表示“& [File]") 而不是 "&[Seiten]" ("&[Pages]")。这可能是语言环境问题吗?我还查看了所有看起来相关的设置,但没有发现任何看起来不合适的设置。
  • 我可以确认 Excel 2019 的这个错误。我也在德语区域设置。

标签: excel vba


【解决方案1】:

我现在已经设法解决了这个问题。无需依赖 Microsoft 文档,而是在 GUI 中手动输入页眉/页脚,然后使用即时窗口 (Crtl+G) 进行调试并查询相关页眉的内容(例如 ? ActiveSheet.PageSetup.FirstPage.RightHeader.Text)。这将为您提供正确的格式代码。

如果其他人知道为什么会发生这种情况(以及为什么其他人无法重现它),我很乐意接受这个作为答案。

【讨论】:

    【解决方案2】:

    我在 Excel 2019 中遇到了同样的问题:我想在右页脚中显示“第 1 页,共 5 页”。 由于它只涉及第一页的特殊设置,我以这种方式解决了它:

    ActiveSheet.PageSetup.FirstPage.RightFooter.Text = "Page 1 of " + Trim(Str(ActiveSheet.PageSetup.Pages.Count))
    

    请注意,这仅在填充单元格、更改页面布局、添加由 VBA 代码完成的手动分页符已完成时才有效,因为在此之前 Excel 现在无法正确数量的页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多