教你如何利用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

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

现在你学会如何制作这个仓库入库单了吗?需要下载入库单模板进行研究的,可以私信搜索:入库单,即可下载模板进行学习。

更多技巧: