分享

使打印票据的序号自动加一

 lwp67 2011-11-19
使打印票据的序号自动加一
2010-10-31 12:16

在打印一些单据或票据时,希望它们的右上角序号能自动增加,每打印一份就自动加1,比如要打印的票据的当前序号是“№ 2010110001”,打印此票据后,下一张的序号自动变成“№ 2010110002”。


这个序号由两部份组成,前面是一个字符“№”,后面是一个空格加一串10个数字,序号的总长度是12位,见下图中的 I2 单元格。


要实现序号自动递增这样的功能,需要用VBA代码来解决。在当前打印票据工作表中按ALT+F11,此时会打开VBA窗口,插入一个“模块”,然后把下面代码复制进去:


Sub 打印()
s = Range("i2") '收据上的当前序号在I2单元格
ActiveWindow.SelectedSheets.PrintOut '调用打印命令打印当前页
Range("i2") = Left(s, 2) & Right(s, 10) + 1 '打印完毕后让序号加一
End Sub

其中的 “Right(s, 10) + 1”的意思是从原序号中的右侧取出10位数字,再把这个数字加一。然后与“left(s,2)”组合成一个新的序号赋值给I2单元格。
这个“left(s,2)”表示从原序号的左侧取出两个字符,即“№”与后面的一个空格。

上面这些完成后,就可以使用这个功能了,为了方便的使用代码,还要在收据的旁边添加一个按钮,每次按动这个按钮,就会调用上面的代码,完成打印并使序号加1。


在EXCEL窗口按“视图-工具栏-窗体”,调出“窗体”工具栏,用鼠标选择其中的“按钮”,并在屏幕的适当位置添加一个“按钮”。添加后会弹出一个“指定宏”的对话框,选择对话框中的“打印”宏(就是我们的VBA代码的名字),然后按确定。


在添加后的“按钮”上点鼠标右键,选“编辑文字”,给这个按钮起一个名字“打印”。


现在就可以使用了,按一下“打印”按钮,就会打印出当前页面,并自动将序号加1。
大家还可以在这个代码中添加其中功能,比如打印后自动清空“收据”的内容,以便输入新的内容。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多