我们需要一个采购单,能实现部分自动功能,我来为大家科普一下关于excel表vba每页自动生成序号?以下内容希望对你有帮助!

excel表vba每页自动生成序号(用EXCELVBA做一个采购单)

excel表vba每页自动生成序号

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

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

2. 自动填写填单日期

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

4.能保存过往单据内容

5. 能复盘过往单据

一:单据格式

单据格式

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

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

准备:

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

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

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

文档页面

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