有个已做好的excel销售订单格式,需要在填写信息完成后保存自动生成一个单据编码,形式为201204000X

只要能实现此功能就ok,有点像勤哲excel一样能记录历史流水号,大概VBA就可以处理:如填写完其他信息后另存为另外excel时候生成一个单据码,或者有无其他更好的方式请大家帮忙

第1个回答  2012-04-07
如果每次打开表格时此单据码自己改变,可以不用VBA,只用EXCEL公式就行了,比如在A1格中生成一个包括日期的编码,可以在A1中输入公式=YEAR(NOW()) & RIGHT("00"&MONTH(NOW()),2) & RIGHT("00"&DAY(NOW()),2) & "001"
如果想每次打开表格后,此单据码是不能改变的,就要用VBA了,在VBA窗口中左侧找到Thisworkbook项目,输入下面代码:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("sheet2").Range("a1") = Year(Now()) & Right("00" & Month(Now()), 2) & Right("00" & Day(Now()), 2) & "001"
End Sub
第2个回答  2012-04-19
Sub setRndNum()
t = Timer
Randomize
Dim myArr
Range("a1") = 1
Range("a1").DataSeries 2, , , 1, 10000
myArr = Range("a1:a10000")

For i = 1 To 10000
a = Int(Rnd() * 10000) + 1
temp = myArr(i, 1)
myArr(i, 1) = myArr(a, 1)
myArr(a, 1) = temp
Next

Range("a1:a10000") = myArr
[c1] = Timer - t
End Sub

这段代码是从别处抄来的,不明白可以去搜如何生成随机数