EXCEL中如何用VBA实现流水编号自动增加问题?

Sub打印()ActiveWindow.SelectedSheets.PrintOutDimmySNAsStringDimiAsIntegeri=i+1mySN="TL"... Sub 打印()
ActiveWindow.SelectedSheets.PrintOut
Dim mySN As String
Dim i As Integer
i = i + 1
mySN = "TL" & Format(Now, "YYYY") & Format(Now, "MM") & "-" & Right("00" & i, 3)
Range("K2").Value = mySN
End Sub

您好,我自己改了个按钮,只不过,打印的格式是这样的:“TL201108-001”,每次打印后后面的编号001不能自动变为002,003.。。。递增的效果,请问,怎么修改一下代码?
展开
 我来答
xlzzc
2011-08-16 · TA获得超过7301个赞
知道大有可为答主
回答量:4205
采纳率:50%
帮助的人:1437万
展开全部
只须小小一改动:
Dim i As Integer
Sub 打印()
ActiveWindow.SelectedSheets.PrintOut
 Dim mySN As String
i = i + 1
mySN = "TL" & Format(Now, "YYYY") & Format(Now, "MM") & "-" & Right("00" & i, 3)
Range("K2").Value = mySN
End Sub
'当然,还有构思更妙的
......张志晨:您的问题==我的课题............
更多追问追答
追问
您好,递增效果是做到了,只不过,我的EXCEL打印后,比如我今天打了10张单子,编码是TL201108-010,我把EXCEL关闭后,重新打印,编码有重新从TL201108-001开始了,能不能有个记录功能,就是说今天我的编码打到010号了,明天打印编码就是从011开始了,谢谢!
追答
构思更妙的“
Sub 打印()
ActiveWindow.SelectedSheets.PrintOut
If Range("K2") = "" Then Range("K2") = 0
Dim i As Integer
i = Right(Range("K2"), 3) + 1
Dim mySN As String
mySN = "TL" & Format(Now, "YYYY") & Format(Now, "MM") & "-" & Right("00" & i, 3)
Range("K2") = mySN
End Sub
languanzeng
2011-08-16 · TA获得超过2285个赞
知道小有建树答主
回答量:1645
采纳率:0%
帮助的人:1807万
展开全部
同样只需小小的改动:
Sub 打印()
If Range("K2") = "" Then Range("K2") = 0
Dim i As Integer
i = Right(Range("K2"), 3) + 1
Dim mySN As String
mySN = "TL" & Format(Now, "YYYY") & Format(Now, "MM") & "-" & Right("00" & i, 3)
Range("K2") = mySN
ActiveWindow.SelectedSheets.PrintOut
ActiveWorkbook.Save
End Sub

把打印语句放在最后
追问
您好,打印到八月三十一日后,比如编码是TL201108-0592,九月一日的编码打印出来还是TL201109-0593,未解决啊,老师。我的意思是,每个月的编号,都是从001开始的,这样开始清楚的知道这个月打印了多少张单子?
追答
加一些判断语句:
1、提取K2中上次留下的月份值(假设当前k2中月份为08)
2、从now()中提取当日月份值
3、对比上述1、2的值,如果当前月份值大于上次保存的月份值,则k2归零: k2=0
注:如果k2中的月份为12的时候,到1月份的时候要将变量转换一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式