2016-02-08 23 views
1

我想知道是否有人能帮助我。我需要在单元格中增加一个数字,然后在打印后清除一些文本框。有一个beforeprint事件,但没有做我想要的,因为在打印表单之前,所有的数据都被清理干净,显然(我为我的英语道歉)是否有办法做到我需要的或者更好的做法。谢谢。如何在Excel上打印后增加单元格中的数字

Private Sub Workbook_BeforePrint(Cancel As Boolean) 
[I6] = [I6] + 1 
[C11] = "" 
[C12] = "" 
Range("B16:B27").ClearContents 
Range("C16:C27").ClearContents 
Range("D16:D27") = "" 
Range("H16:H27").ClearContents 
End Sub 
+0

也许提供对所有这些范围和单元格地址的父工作表参考。 – Jeeped

+1

通常,您会使用before_print方法来执行类似于设置打印区域的操作,即打印文档的操作。你正在做的只是重置一些字段,这将更好地链接到重置按钮,以便它独立于打印行为。如果因为第一个失败而需要打印两次会怎样?如果你想打印而不重置? – CustodianOfCode

+0

如果你真的想要走上链接打印和重置的路径,只需做一个“打印和重置”按钮就可以了。 – CustodianOfCode

回答

1

行事打印后,您需要打印通过VBA的ActiveSheet.PrintOutBeforePrint事件的内部文件,并设置取消为true,所以也没有太运行其自己的打印。

Private Sub Workbook_BeforePrint(Cancel As Boolean) 

Cancel = True 
Application.EnableEvents = False 
ActiveSheet.PrintOut 
Application.EnableEvents = True 

[I6] = [I6] + 1 
[C11] = "" 
[C12] = "" 
Range("B16:B27").ClearContents 
Range("C16:C27").ClearContents 
Range("D16:D27") = "" 
Range("H16:H27").ClearContents 

End Sub 
+0

非常感谢。很有帮助。很棒! –