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.
中
正如其他答案所建议的那样,代码很好,问题不存在:实际上,问题来自于它没有被调用。
这反过来又来自一个愚蠢的情况:设计模式已启用!
禁用设计模式后,一切正常...
我想将一些数据动态设置到 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.
中正如其他答案所建议的那样,代码很好,问题不存在:实际上,问题来自于它没有被调用。
这反过来又来自一个愚蠢的情况:设计模式已启用!
禁用设计模式后,一切正常...