Excel 表格里如何自动生成单号,打印之后自动递增

单号以“字母+当天日期+单号”组成,比如SD20130116001,打印之后增加1,即SD20130116002,等第二天又以当天的日期的第一单号开始计SD20130117001
网上找了很多都不是我想要的,有个我自己改动了下应用到新的表格是没问题的,但应用到我的表格里就出现问题,不知道问题出现在哪里,所以只能在这求助了!
附上那个代码如下:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim xStr As String
xStr = Right(Sheets("Sheet1").Range("F5"), 11)
If Left(xStr, 8) = Format(Date, "yyyymmdd") Then
xStr = "LD" & Format(Date, "yyyymmdd") & Application.Text(Right(xStr, 3) + 1, "000")
Else
xStr = "LD" & Format(Date, "yyyymmdd") & "001"
End If
Sheets("Sheet1").Range("F5") = xStr
End Sub

大神帮帮忙,万分感谢!

1、通过《收款单》,来逐步看一下设置表格打印后编码自动加1。

2、同时按下Alt+F11键,弹出如图对话框。

3、依次点击菜单栏,“插入-模块”。

4、在模块对话框中输入:Sub PR()

                                  ActiveSheet.Printout

                                  [D2]=[D2]+1

                                  End Sub

其中【D2】为编码单元格,输入完毕后,关闭VB对话框。

5、在对话框中,依次选取【自定义】-【开发工具选项卡】-【宏安全性】,将【宏安全性】添加到右栏,点击【确定】。

6、会发现工具栏中出现了【宏安全性】图标。

7、双击【宏安全性】图标,弹出【信息中心】对话框,在其中点击【宏设置】,选取“启用所有宏”,点击确定。

8、同时按下Alt+F8二键,弹出【宏】对话框。

9、在【宏】对话框中,点击【选项】,弹出【宏选项】界面,在此界面中可以设置热键,设置成“CTRL+P”,点击【确定】,设置完毕。

10、按下“CTRL+P”,打印的同时,编码自动变化+1。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-15

   excel里,可以利用时间函数today和row函数自动生成单号。

  假如A列是单号,可以在A2输入公式:=IF(B2<>"",TEXT(TODAY(),"yyyymmdd")&ROW()-1,"")。公式解析:如果B2单元格为空,就显示为空,否则就返回日期函数和row函数生成的序列号。用today函数生成的序列号,带有日期的信息,可以在以后方便的查找。

第2个回答  2013-01-16
Sheets("Sheet1") 把这个"sheet1" 改为你的工作表名字试试看!追问

我是有改的,不过就是不行,我的工作表名字是Sheet14,要应用到G1单元格,上面代码两处都有改

追答

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim xStr As String
xStr = Right(Sheets("Sheet14").Range("G1"), 11)
If Left(xStr, 8) = Format(Date, "yyyymmdd") Then
xStr = "LD" & Format(Date, "yyyymmdd") & Application.Text(Right(xStr, 3) + 1, "000")
Else
xStr = "LD" & Format(Date, "yyyymmdd") & "001"
End If
Sheets("Sheet14").Range("G1") = xStr
End Sub

追问

就是这样改不行的

追答

我测试没有问题。
你是不是把代码放到 sheet14里面了?
一定要双击 THIS WORKBOOK 把代码放进去才行。

追问

问题是用新的工作表怎么改都可以,不过要指定应用到我原先的表格就是不行!
我知道的,我就是用到THIS WORKBOOK ,我那里面还有其它代码的,增加进去就是不行的

追答

815850733,要不把你的原表发来看看!

本回答被提问者采纳
相似回答