我想动态地将一些数据设置到工作表的标题(和/或页脚)中。
在几个论坛上,我发现了许多展示如何做到这一点的例子,而且看起来很容易理解,没有任何困难 所以我将我读到的内容应用到这样一个简单的尝试中:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.CenterFooter = Range("A1")
End Sub
但它只是不起作用:我的工作表预览中没有任何内容。
BTW文件中唯一含糊不清的一点是关于要使用的数据的表达,所以我也尝试将Range("A1")
替换为Range("A1").Text
,然后替换为Range("A1").Value
,但也没有成功。< / p>
我想我错过了一些简单的观点...
答案 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)
正如其他答案已经提出的那样,代码很好,问题不存在:事实上,问题来自于它没有被调用的事实。
而这反过来又来自一个愚蠢的情况:启用了设计模式!
禁用设计模式,一切正常......