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
。。。这就是为什么我发现我没有启用设计模式!我真的不能“接受”你的答案,但这肯定是我理解发生了什么的方式,所以我投了赞成票。再次感谢。