Workbook_BeforePrint 活动无效

Workbook_BeforePrint event not working

我想将一些数据动态设置到 sheet 的页眉(and/or 页脚)。

我在几个论坛上找到了很多例子来说明如何做到这一点,而且它们看起来都很容易理解,没有任何困难。
所以我将我读到的内容应用到一个简单的尝试中:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    ActiveSheet.PageSetup.CenterFooter = Range("A1")
End Sub

但它根本不起作用:我的 sheet 预览中没有显示任何内容。

顺便说一句,文档中唯一含糊不清的地方是关于要使用的数据的表达,所以我也尝试用 Range("A1").Text 替换 Range("A1"),然后用 Range("A1").Value,也没有成功.

我想我遗漏了一些简单的要点...

不是 beforeprint 不起作用,而是 .centerfooter。改为尝试:

ActiveSheet.PageSetup.CenterFooter = CStr(Cells(1, 1))

Documentation 明确要求 string,但我不确定为什么它明确需要它作为 string,即使它已经是单元格中的字符串。

你的代码对我有用。还使用一些额外的调试行测试了您的代码:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Debug.Print "Running Workbook_BeforePrint"
    ActiveSheet.PageSetup.CenterFooter = Range("A1")
    Cancel = True
End Sub

打印前,页脚为空;打印后,预览中的页脚与 A1 匹配,"Running Workbook_BeforePrint" 在立即 window.

正如其他答案所建议的那样,代码很好,问题不存在:实际上,问题来自于它没有被调用。

这反过来又来自一个愚蠢的情况:设计模式已启用!

禁用设计模式后,一切正常...