二:手動(dòng)更改單號與錄入保存
現(xiàn)在,我們要實(shí)現(xiàn)以下的功能
1. A2單元格點(diǎn)擊一次,單號自動(dòng)+1(為了防止長時(shí)間不操作忘記自己有沒有更改單號)
2. 同時(shí)該單元格還可以自由編輯(允許用戶改成其它格式單號)
新建一個(gè)“物料”表,格式如下
3. 物資名稱下面的10個(gè)空格,可以點(diǎn)擊觸發(fā)頁面跳轉(zhuǎn)事件,跳到“物料”表,去選擇需要的物料后自動(dòng)返回到本頁。
由于都是鼠標(biāo)事件觸發(fā)的,以上功能全部寫在一起:
'鼠標(biāo)點(diǎn)擊事件監(jiān)聽
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'點(diǎn)擊A2單元格后自動(dòng)遞加單號
If Target.Column = 1 And Target.Row = 2 Then '第1列第2行就是A2
'清空輸入表,單號改變表示要做新單了
Range("B8:F17") = "" 'B8-F17內(nèi)容清空
Range("H8:H17") = "" 'H8-H17內(nèi)容清空
Cells(8, 2).Value = "以下空白" '沒有內(nèi)容則自動(dòng)填寫“以下空白”字樣
'Range("a5").Select
'下面自動(dòng)填寫日期
dates = Application.Text(Now(), "yyyy/mm/dd")
'格式化日期為字符串
d = Replace(dates, "/", "")
'獲取單號里的日期
d0 = Mid(Range("a2").Value, 9, 8)
'獲取當(dāng)前單號尾綴
st = Right(Range("a2").Value, 3)
'判斷是否為數(shù)字
If IsNumeric(Right(st, 1)) Then
'日期相同尾綴自動(dòng)+1
If d <> d0 Then
nst = 1
Else
'輸出數(shù)字類型
nst = CInt(st)
nst = nst + 1
End If
'格式化單號尾綴為三位數(shù)
nst = Format(nst, "000")
'自動(dòng)填寫單號
Range("a2").Value = "采購方單號:" & "CG" & d & nst
Else
'單號為空時(shí),自動(dòng)填寫單號為001
Sheets("采購單").Range("a2").Value = "采購方單號:" & "CG" & d & "001"
End If
End If
'監(jiān)控點(diǎn)擊區(qū)域,鼠標(biāo)點(diǎn)擊在第二列第8-17行時(shí),會(huì)轉(zhuǎn)到物料頁面
If Target.Column = 2 And Target.Row > 7 And Target.Row < 18 Then
Cells(Target.Row, 5).Select
'我們在“物料”表的G1單元格記錄下當(dāng)前鼠標(biāo)點(diǎn)擊的是第幾行,等會(huì)選擇物料后再根據(jù)這個(gè)行數(shù)將內(nèi)容回填
Sheets("物料").Range("G1") = Target.Row
Sheets("物料").Select
End If
''點(diǎn)擊第1列第7-18行的序號,會(huì)清空該行內(nèi)容
tr = Target.Row
If Target.Column = 1 And tr > 7 And tr < 18 Then
Cells(tr, 2) = ""
Cells(tr, 3) = ""
Cells(tr, 4) = ""
Cells(tr, 5) = ""
Cells(tr, 6) = ""
Cells(tr, 8) = ""
End If
End Sub
“采購單”頁的[小計(jì)]和[合計(jì)]公式就不在這里說了,小計(jì)等于前面的數(shù)量X單價(jià),合計(jì)是所有小計(jì)的總和
4. 如果單據(jù)填寫完成確認(rèn)無誤了,我們還需要保存一下
1. 新建一個(gè)“數(shù)據(jù)”工作表
2. 數(shù)據(jù)表格式如下:
3. 回到“采購單”頁面,做一個(gè)點(diǎn)擊按鈕控件,點(diǎn)一下它就保存“采購單”的內(nèi)容。
從[開發(fā)工具]-〉[插入]-〉A(chǔ)ctiveX控件=命令按鈕
將文檔設(shè)置成[設(shè)計(jì)模式],右擊[保存表單],可以設(shè)置其屬性,文本格式顏色等,我們將它的名字改為btn
這個(gè)按鈕我們只想它能看到能用到,但打印的時(shí)候不能打出來,那就右擊它,{設(shè)置控件格式},屬性-〉取消[打印對象]前的勾,這樣打印的時(shí)候就不會(huì)出現(xiàn)了。
在“采購單”頁面的代碼欄最底下,追加按鈕點(diǎn)擊事件
Private Sub btn_Click() '當(dāng)按鈕點(diǎn)擊時(shí)
'截取當(dāng)前單號
dh = Split(Range("a2"), ":")
'查找是否存在單號
Set r = Sheets("數(shù)據(jù)").Range("a1:a60000").Find(dh(1), lookat:=xlWhole)
'如果沒有查找到有重復(fù)單號就開始記錄
If r Is Nothing Then
'單號、日期、名稱、規(guī)格、數(shù)量、單價(jià)、備注
Set sh = Sheets("數(shù)據(jù)")
Set sh1 = Sheets("采購單")
For i = 8 To 17
If sh1.Cells(i, 3).Value <> "" Then
'將“采購單”頁的內(nèi)容按行填寫插入“數(shù)據(jù)”表的第二行
dates = Application.Text(Now(), "yyyy/mm/dd hh:mm:ss")
sh.Rows(2).Insert
sh.Cells(2, 1).Value = dh(1)
sh.Cells(2, 2).Value = dates
sh.Cells(2, 3).Value = sh1.Cells(i, 2).Value
sh.Cells(2, 4).Value = sh1.Cells(i, 3).Value
sh.Cells(2, 5).Value = sh1.Cells(i, 4).Value
sh.Cells(2, 6).Value = sh1.Cells(i, 6).Value
sh.Cells(2, 7).Value = sh1.Cells(i, 8).Value
End If
Next
End If
MsgBox "表單已保存"
End Sub
現(xiàn)在可以取消[設(shè)計(jì)模式]了。
下一篇再續(xù)
好了,這篇文章的內(nèi)容發(fā)貨聯(lián)盟就和大家分享到這里,如果大家網(wǎng)絡(luò)推廣引流創(chuàng)業(yè)感興趣,可以添加微信:80709525 備注:發(fā)貨聯(lián)盟引流學(xué)習(xí); 我拉你進(jìn)直播課程學(xué)習(xí)群,每周135晚上都是有實(shí)戰(zhàn)干貨的推廣引流技術(shù)課程免費(fèi)分享!