订货单表格模板制作(用EXCEL VBA做一个采购单(1)自动填写日期单号)

作者:访客 时间:2023年08月20日 05:40:56 阅读数:2人阅读

我们需要一个采购单,能实现部分自动功能

1. 单号自动填写,以“采购”首字母“CG”开头 当天日期 三位自动编号,保证单号唯一不能有任何重复

2. 自动填写填单日期

3. 建立供应商供应信息并能快捷插入

4.能保存过往单据内容

5. 能复盘过往单据



一:单据格式

订货单表格模板制作(用EXCEL VBA做一个采购单(1)自动填写日期单号)

单据格式

1. 先实现红色色部分功能

打开文档,就要自动填写单号和日期;要打开文档即执行VBA,那么代码就得写在THISWORKBOOK页面

准备:

a> 建立一个叫“采购单”的工作表

b> 右击工作表下方名称部位-》查看代码

c> 双击“thisworkbook”弹出的代码页输入下列代码


订货单表格模板制作(用EXCEL VBA做一个采购单(1)自动填写日期单号)

文档页面



订货单表格模板制作(用EXCEL VBA做一个采购单(1)自动填写日期单号)


Private Sub workbook_open()

'下面自动填写日期,格式为年/月/日

dates = Application.Text(Now(), "yyyy/mm/dd")

Sheets("采购单").Range("e6").Value = "日期:" & dates

'格式化日期为字符串,取消反斜杠年/月/日变为年月日

d = Replace(dates, "/", "")


'获取单号里的日期,A2表格内容的第9个字符往后8位长度

d0 = Mid(Sheets("采购单").Range("a2").Value, 9, 8)

'获取当前单号尾缀,A2内容字符从右数起三位数

st = Right(Sheets("采购单").Range("a2").Value, 3)

'判断是否为数字,不是数字就出错了

If IsNumeric(Right(st, 1)) Then


'日期相同尾缀自动 1,表示今天你第二次打开准备录第二张单,每打开一次都自动加1

If d <> d0 Then

nst = 1

Else

'输出数字类型

nst = CInt(st)

nst = nst 1

End If


'格式化,让数字保持为三位数

nst = Format(nst, "000")

'如果原来已经有单号,则自动填写更改后的单号

Sheets("采购单").Range("a2").Value = "采购方单号:" & "CG" & d & nst

Else

'如果原来A2格是空白的,则自动填写为001的单号

Sheets("采购单").Range("a2").Value = "采购方单号:" & "CG" & d & "001"

End If


End Sub