Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 工作簿\u打印前事件不起作用_Excel_Excel 2007_Vba - Fatal编程技术网

Excel 工作簿\u打印前事件不起作用

Excel 工作簿\u打印前事件不起作用,excel,excel-2007,vba,Excel,Excel 2007,Vba,我想动态地将一些数据设置为工作表的页眉(和/或页脚) 从几个论坛中,我找到了许多例子,展示了如何做到这一点,它们似乎都很容易理解,没有任何困难。 所以我把我读到的应用到一个简单的尝试中,比如: Private Sub Workbook_BeforePrint(Cancel As Boolean) ActiveSheet.PageSetup.CenterFooter = Range("A1") End Sub 但它只是不起作用:我的工作表预览中没有显示任何内容 顺便说一句,文档中唯一模棱

我想动态地将一些数据设置为工作表的页眉(和/或页脚)

从几个论坛中,我找到了许多例子,展示了如何做到这一点,它们似乎都很容易理解,没有任何困难。
所以我把我读到的应用到一个简单的尝试中,比如:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    ActiveSheet.PageSetup.CenterFooter = Range("A1")
End Sub
但它只是不起作用:我的工作表预览中没有显示任何内容

顺便说一句,文档中唯一模棱两可的地方是要使用的数据的表达方式,因此我也尝试用
Range(“A1”)
替换
Range(“A1”)
。Text
,然后用
Range(“A1”).Value
,也没有成功


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

不是打印前的
不起作用,而是
.centerfooter
。请尝试:

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

显式调用
字符串
,但我不确定它为什么显式需要它作为
字符串
,即使它在单元格中已经是字符串。

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

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

打印前,页脚为空;打印后,预览中的页脚与A1匹配,“打印前运行工作簿”出现在即时窗口中。

正如其他答案所建议的,代码很好,问题不存在:事实上,问题来自未调用它的事实

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


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

谢谢您的回答。但它一直没有显示任何东西!顺便说一句,我还直接尝试了
ActiveSheet.PageSetup.CenterFooter=“Some text”
,结果还是一样的。难道不是从来没有调用过
私有子类
?但我不明白为什么…它对我来说就是这样,在2007年。你在
这个工作簿的
模块中有它吗?读了你上次的评论,我想是“Alleluia”,因为我把它放在了相关的工作表模块中。但是将其移动到
此工作簿
模块后,它将继续不工作!还有别的想法吗?TIAI发现了问题所在(看看我自己的答案),多亏了你的回答。首先,我按照您的建议添加了一个
Debug.Print
,并观察到执行窗口中没有显示任何内容。它强化了未触发事件的想法,因此我想在工作宏中添加一个
Debug.Print
。。。这就是为什么我发现我没有启用设计模式!我真的不能“接受”你的答案,但这肯定是我理解发生了什么的方式,所以我投了赞成票。再次感谢。