Excel除了我们日常的数据整理,利用表格特有的代码功能,我们还可以实现一些高级的数据操作。比如说仓库入库单的制作,它能够实现通过点击自动完成数据录入、计算以及保存等操作。
上面就是我们仓库入库单的效果演示,我们可以通过计算、保存、开单的按钮设置,点击就能够自动进行数据的计算、保存以及清除之前数据重新输入等多种操作。是不是感觉非常的方便了?下面我们就来学习一下具体的操作方法。
第一步:首先在表格中填写基础数据,将入库单页面的编号,品名等用数据有效性的方式进行引用,这样我们就可以实现轻松的对输入数据进行选择。这样可以尽可能的缩短我们填写数据的时间。如下图所示:
第二步:通过Excel编写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
第三步:点击菜单栏:开发工具—插入,选择按钮插件,然后鼠标右键选择指定宏功能即可。这样我们就能够通过指定功能的方式,将控件赋予不同的代码功能。操作如下图所示: