更新时间2019-08-05 05:25:03
打印一些日常单据,需要加入单号,格式:NO:YYMMDDXXXX,“XXXX”按打印份数排序,本次打印单号按上次打印序号开始编排。日期更新单号自动归零。比如第一次一次打印出来100份单号是201702170001、201702170002。。。201702170100,第二次打印是从201702170101编号开始生成。第二天日期更改就自动从201702180001开始打印。
假设:
你的“单号”在你的表格中的“B2”单元格,请这样操作:
按组合键“Alt+F11”调出VBA编辑器,再在“ThisWorkbook”上点击“右键---查看代码”。如图:
再把以下代码粘贴进右侧的窗口中:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Left([b2], 8) = Format(Date, "yyyymmdd") Then
[b2] = Left([b2], 8) & Format(Right([b2], 4) + 1, "0000")
Else
[b2] = Format(Date, "yyyymmdd") & "0001"
End If
End Sub
这段代码叫做“打印前响应代码”,每次打印之前会被激活运行一次。
代码会判断序号中的日期是否与当前日期一致,
如果日期一致,则序号+1处理,
否则,按照当前日期“0001”开始编号,
处理完编号之后,表格会被打印输出!
你这个要求必须要编写VBA程序,其中可能要用到一些参数,比如当前的编号,就是后面0001这个序号,要存放在一个隐藏页的单元格中,供VBA程序存取,这样你下次打开文件时会继续编号。