教你如何利用vba製作自動登記數據的倉庫入庫單

2019-05-29     Excel函數與VBA實例

Excel的強大之處不在於日常的一些函數、vba代碼及日常表格的操作,而是在於它可以通過這些函數和代碼實現我們需要的數據報表功能。如倉庫人員經常會涉及到的入庫單、HR經常會利用到的自動化人員信息登記表等等。

【效果圖】

看了上面的動態效果,是不是感覺這個入庫單非常神奇的呀。我們只要點擊開單,就可以重新更新表格,點擊計算可以計算金額,點擊保存可以保存我們輸入的數據。下面我們就來講一下如何製作這個倉庫入庫。

第一步:如上圖。填寫基礎數據,將入庫單頁面的編號,品名等用數據有效性的方式進行引用,這樣我們就可以實現輕鬆的對輸入數據進行選擇。這樣可以儘可能的縮短我們填寫數據的時間。

第二步:編寫VBA代碼,實現計算、保存、開單等常用功能。按快捷鍵alt+F11快速進入VBA代碼編輯窗口,如上圖。輸入下方代碼。

Sub 開單()

Set es = Cells.Find("*", , xlFormulas, , , xlPrevious)

[b2] = "SM" & Format(Now(), "ymdhms")

Range([a5], es.Offset(4)) = ""

[e2] = ""

End Sub


Sub 保存()

On Error GoTo 100

Dim es As Range, a%

If Sheet2.[f:f].Find([b2]) = [b2] Then

MsgBox "已經保存過了!"

Else

100:

Set es = Cells.Find("*", , xlFormulas, , , xlPrevious)

a = Application.CountA(Sheet2.[a:a])

If es.Row = 4 Then MsgBox "沒有填寫內容": End

Range([a5], es).Copy Sheet2.Cells(a + 1, 1)

Sheet2.Cells(a + 1, "f").Resize(es.Row - 4) = [b2] '保存入庫單

Sheet2.Cells(a + 1, "g").Resize(es.Row - 4) = [e2] '保存供應商

Sheet2.Cells(a + 1, "h").Resize(es.Row - 4) = Now() '保存日期時間

MsgBox "保存成功!"

End If

End Sub


Sub 計算()

Set es = Columns(3).Find("*", , xlFormulas, , , xlPrevious)

For Each Rng In Range([c5], es)

Rng.Offset(0, 2) = Rng.Offset(0, 1) * Rng

Next

End Sub

第三步:插入按鈕插件,指定宏功能即可,如下圖:

現在你學會如何製作這個倉庫入庫單了嗎?需要下載入庫單模板進行研究的,可以私信搜索:入庫單,即可下載模板進行學習。

更多技巧:

文章來源: https://twgreatdaily.com/zh-sg/eHaoqWwBvvf6VcSZ-CDh.html