excel表vba每頁自動生成序号?我們需要一個采購單,能實現部分自動功能,我來為大家科普一下關于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
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!