Workbook_BeforePrint事件无法正常工作

时间:2016-06-17 08:26:26

标签: excel-vba excel-2007 vba excel

我想动态地将一些数据设置到工作表的标题(和/或页脚)中。

在几个论坛上,我发现了许多展示如何做到这一点的例子,而且看起来很容易理解,没有任何困难 所以我将我读到的内容应用到这样一个简单的尝试中:

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

但它只是不起作用:我的工作表预览中没有任何内容。

BTW文件中唯一含糊不清的一点是关于要使用的数据的表达,所以我也尝试将Range("A1")替换为Range("A1").Text,然后替换为Range("A1").Value,但也没有成功。< / p>

我想我错过了一些简单的观点...

3 个答案:

答案 0 :(得分:1)

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

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”位于立即窗口中。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

正如其他答案已经提出的那样,代码很好,问题不存在:事实上,问题来自于它没有被调用的事实。

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

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