
Excel通常用于生产业务文档,例如出库单。一个非常现实的要求是自动为表格编号。我希望每次打印时该数字都会自动增加。
幸运的是,Excel可以支持自动编号的实现。 Internet上有很多方法,但是经过很长一段时间我一直无法成功实现它。但是我仍然在网上找到了一些灵感。

首先,您必须知道Excel提供了Workbook_BeforePrint事件。可以在打印或打印预览之前执行此事件。由于打印预览不是真实的打印,因此增加Workbook_BeforePrint事件中的数字显然是错误的。怎么做? Excel是否具有Workbook_AfterPrint事件?不幸的是没有。
如果您可以区分打印预览和打印,那就太好了。但是,几乎不可能区分。因此,我认为系统附带的打印和打印预览功能将被禁用。

失效非常简单,只需设置Cancel = true。
私人子工作簿_BeforePrint(取消为布尔值)取消=真实结尾子

好的,我已经禁用了系统的打印功能,所以我必须自己编写打印代码。不知道怎么写代码?没关系,您可以记录一个宏。
执行打印的命令是:ExecuteExcel4Macro“ PRINT(1 ,,, 1 ,,,,,,,,, 2 ,,, TRUE ,, FALSE)”

实现自动递增,范围(“ B1”)。选择ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 + 1
在这里,我定义一个全局变量isPrint,将其设置在宏中,并在需要打印时将其设置为isPrint = true,以便我可以判断事件是否需要打印。
完整代码
公共isPrint为布尔型子Macro1()isPrint = True ExecuteExcel4Macro“ PRINT(1 ,,, 1 ,,,,,,,,,, 2 ,,, TRUE ,, FALSE)” Range(“ B1”)。Select ActiveCell .FormulaR1C1 = ActiveCell.FormulaR1C1 +1结束子
Private Sub Workbook_BeforePrint(取消为布尔值)Cancel = True如果isPrint = False,则退出Sub Cancel = False isPrint = False End Sub
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shumachanpin/article-339121-1.html
很棒
把南方公司黑急了
不管它是个纸狼还是什么其他东西