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
第三步:插入按钮插件,指定宏功能即可,如下图:
现在你学会如何制作这个仓库入库单了吗?需要下载入库单模板进行研究的,可以私信搜索:入库单,即可下载模板进行学习。