2016-02-08 59 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

非常感謝。很有幫助。很棒! –