excel打印送货单设置自动生成流水号

如上图,我想在开完单后打印做一个流水号,打印一张是NO.201500001,打印第二张自动变成NO.201500002.....
求详细操作步骤

亲,这个需要VBA编程解决。假设你的要打印的这个表的工作表名称为“Sheet1”,流水号在F2单元格。

下面的代码可以实现先递增流水号再打印。注意,当你要打印第一个编号时,请先把编号设为NO.201500000。

 

打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧对应的Thisworkbook上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。

 

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Sheet1" Then
    Application.EnableEvents = False
    [f2] = Left([f2], 7) & Format(Right([f2], 5) + 1, "00000")
    ActiveSheet.PrintOut
    Application.EnableEvents = True
End If
End Sub

追问

还是不会弄,我的是在F1单元格的,也把你的代码改回F1了,打印编号还是不变,我把文件发给你,你帮我设置下好吗,你的邮件 ?

追答

代码改了一下。已发给你了。

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Sheet1" Then
    With Sheets("Sheet1")
        .Range("F1").Value = Left(.Range("F1").Value, 7) & Format(Right(.Range("F1").Value, 5) + 1, "00000")
    End With
End If
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-04

可以使用这款现成的,勾选递增打印。

第2个回答  2015-03-17
还可以自动清空表格,用VBA编程实现。追问

我大白菜一个,VBA是什么都不懂...不能把操作具体说下

追答

请参考另外两位的。

第3个回答  2015-03-17
按ALT+F11 ,
PrivateSub Workbook_BeforePrint(Cancel As Boolean)
n = Val(Replace([M1], "本文档已经累计打印", ""))
[M1] = "NO.201500000" & n +1
End Sub
相似回答