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
第三步:插入按鈕插件,指定宏功能即可,如下圖:
現在你學會如何製作這個倉庫入庫單了嗎?需要下載入庫單模板進行研究的,可以私信搜索:入庫單,即可下載模板進行學習。