2

我有一些代码可以在 Workbook_BeforePrint 方法中更新 Excel 页面标题:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")
    ws.PageSetup.LeftHeader = ws.Range("A1").Value
End Sub

Public Sub PrintSheet()
    Worksheets("Sheet1").PrintOut
End Sub

当我在不先进入打印预览的情况下打印时,标题不会更新。

当我首先去打印预览时,添加了标题。

我如何确保在打印时正确更新页眉并先进行打印预览?

非常感谢!

4

2 回答 2

0

它对我来说按预期工作。

确保 Worksheets("Sheet1").Range("A1") 实际上有一些东西。还要检查工作表名称以确保它是正确的。工作表具有可通过 UI 更改的 Name 属性和可通过代码或“属性”对话框更改的 CodeName 属性。仔细检查你没有混淆他们。您的代码 Worksheets("Sheet1") 使用 Name 属性(选项卡名称)。

此外,请确保您没有在某些调用过程中禁用事件。您可以在 PrintSheet 中添加一条语句,例如

Debug.Print Application.EnableEvents

以确保堆栈中的某些内容不会禁用事件。

于 2012-07-19T16:00:52.303 回答
0

对标题进行更改后,尝试添加行“Application.PrintCommunication = True”

于 2020-02-20T22:22:06.040 回答