vba自动生成单号,先谢谢

vba自动生成单号,先谢谢自动生成不重复的单号

在a1输入NO.KG00001,按alt+f11,双击左上窗口的thisworkbook,复制以下代码粘贴,关闭窗口回到表格,下次打开表格就自动出单号。如果不想在a1生单号,可以改在其他单元格,稍微改下代码就行。

Private Sub Workbook_Open()
Dim a
a = Mid(Cells(1, 1), 6, 5)
a = a + 1
If a < 10 Then
Cells(1.1) = "NO.KG" & "0000" & a
ElseIf a < 100 Then
Cells(1.1) = "NO.KG" & "000" & a
ElseIf a < 1000 Then
Cells(1.1) = "NO.KG" & "00" & a
ElseIf a < 10000 Then
Cells(1.1) = "NO.KG" & "0" & a
ElseIf a < 100000 Then
Cells(1.1) = "NO.KG" & a
End If
End Sub追问

能解决我说的条件吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-11
我知道你想干嘛,你这存在两个问题。①单号应该是分成两个部分的。②自动生成,关键是自动的前提是什么?追问

我说那个条件

有点不明白你说的意思

追答

你的自动也得有个前提条件不是?比如B4是00001,什么条件下它自动?没条件让它一秒跳一号你愿意?单号是纯数字还是有其它固定结构?

追问

我点击一个按钮 他就生成

格式 00017380

前边三个000

追答

就是控件按钮触发,我就说怎么自动呢😊!

dim a,b
a=sheets("B").[b65536].end(3).row
b=sheets("A").range("B4")
b=sheets("B").range("B" & a)+1
sheets("B").range("B" & a+1)=b

在B表b列输入一个起始单号,按一下按钮就会切换填充一个。不会漏值

追问

我试试

说个联系方式

你这是增加单号,不会看是不是漏号

漏号的话还是不行

追答

问题它怎么会漏号呢?已经默认记录+1了。不可能跳号的。只要记录不超过65536行就不会重复(07版可以修改这个最大值)

追问

我前边可能会有删除单据

就会删除前边的单号,能不能补上?

追答

是删除单元格还是清除数据

第2个回答  2017-08-11
可以私信我追问

在吗

我的问题怎么解决

第3个回答  2017-08-11
纯数字的单号?追问

对的 格式为 00012345

相似回答