大家好,今天,我们接着进行出入库报表的制作。昨天的我们做好了表格的基础框架的搭建。
这里和大家明确一个事情,在进行功能的实现的时候,如果有一些基础性的东西,EK不会和之前的文章中,会很清晰地和大家分析,公式是如何如何实现,VBA中代码为什么会这么写?因为EK想的是,尽量多实现功能,提高表格的重用性。如果大家希望知道如何实现,大家可以在评论区告诉EK,EK会尽可能地帮助大家理解,再次,谢谢大家。
今天准备实现入库单据的录入,和出库单据的录入。
打开昨天的EXCEL文件【VBA制作出入库报表】,点击【单据操作】表。
1、首先,咱们实现一个仓库和库位的二级联动。选中【单据操作】表中的仓库标题下的“F4:F15” 单元格,点击"数据"标签卡中的"数据验证","允许"中选择"序列"。来源选择【现有库存】中的B1:E1单元格,最后点击确定。
2、选中【现有库位】中的B1:E21 单元格,然后在“公式”选项卡中,选择“根据所选内容创建”,选择“首行”,点击“确定”。
3、选中【单据操作】中的G4单元格,点击"数据"标签卡中的"数据验证","允许"中选择"序列"。来源写入公式=INDIRECT($F4),点击“确定”。整个操作完成,制作及效果图如图1.
图1 二级联动制作及效果图
4、选中【单据操作】中的A2单元格,点击"数据"标签卡中的"数据验证","允许"中选择"序列"。来源写入"入库单,出库单",注意这里是英文输入法下的逗号。点击确定。
5、选中C3,D3,E3,F3,H3,B4.分别写入公式:
C3=LEFT($A$2,2)& "时间"
D3=LEFT($A$2,2)& "单号"
E3=LEFT($A$2,2)& "数量"
F3=LEFT($A$2,2)& "仓库"
H3=LEFT($A$2,2)& "类型"
B4=IF(A4="","",VLOOKUP(A4,基础信息!A:B,2,0))
将B4单元格往下填充至B15.处理完毕。来看一下效果图
图2 出入库单效果图
6、选中【现有库位】中的H1:I5 单元格,然后在“公式”选项卡中,选择“根据所选内容创建”,选择“首行”,点击“确定”。选中【单据操作】中的H4单元格,点击"数据"标签卡中的"数据验证","允许"中选择"序列"。来源写入公式=INDIRECT($H$3),点击“确定”。整个操作完成,制作及效果图如图3.
图3 出入库类型制作
7、从第7步开始,我们要使用VBA代码了。首先,点击“开发工具”选项卡中,点击“查看代码”,右键左上角当前工作表->插入->模块。在模块里,我们可以开发代码。操作步骤如图3.
图4 打开VBE窗口
8、在模块1 中先来写一个过程:
Sub 添加表单()
hcz = Sheets("单据操作").Cells(Sheets("单据操作").Rows.Count, 1).End(xlUp).Row '【单据操作】第1列最后一行行号
If Sheets("单据操作").Range("A2").Value = "" Then '判断【单据操作】中“A2”单元格内容是否为空,如为空退出程序
MsgBox "单据名称错误,请重新填写!"
Exit Sub
ElseIf hcz <= 3 Then '判断【单据操作】中“A4:A15”单元格内容是否为空,如为空退出程序
MsgBox "单据中没有数据,请重新填写!"
Exit Sub
End If
For i = 4 To hcz '对A4:A & hcz 之间的单元格有空值的判断,如有空退出程序
If Sheets("单据操作").Range("a" & i).Value = "" Then
MsgBox "A" & i & "单元格为空,请填入连续的数据!"
Exit Sub
End If
Next
hrq = Sheets("入库流水账").Cells(Sheets("入库流水账").Rows.Count, 1).End(xlUp).Row '【入库流水账】第1列最后一行行号
hcq = Sheets("出库流水账").Cells(Sheets("出库流水账").Rows.Count, 1).End(xlUp).Row '【出库流水账】第1列最后一行行号
'判断【单据操作】中“A2”单元格内容,如果为“入库单”则将数据写入【入库流水账】中,如果为“出库单”则写入【出库流水账】中
If Sheets("单据操作").Range("A2").Value = "入库单" Then
Sheets("单据操作").Rows("4:" & hcz).Select
Selec
Sheets("入库流水账").Activate
Sheets("入库流水账").Select
Sheets("入库流水账").Range("A2").Select
Ac
MsgBox "入库单添加完毕!"
ElseIf Sheets("单据操作").Range("A" & hrq +1).Value = "出库单" Then
Sheets("单据操作").Rows("4:" & hcz).Select
Selec
Sheets("出库流水账").Activate
Sheets("出库流水账").Select
Sheets("出库流水账").Range("A" & hcq+1).Select
Ac
MsgBox "出库单添加完毕!"
End If
Sheets("单据操作").Activate
Sheets("单据操作").Range("A4:A15,C4:H15") = ""
End Sub
为了方便大家,直接复制出来了。以上为代码。如图5
9、在【单据操作】中添加一个按钮,指定宏为“添加表单”,如图6:
图9 控件添加以及出入库添加演示图
到这里,我们今天所希望完成的表单功能,出入库添加已经完成。明天我们接着来完善表单的其他功能。如果,有不懂的地方,可以在评论区告诉EK。如果想获得文中的文件,可以关注私信EK。
最后,感谢小伙伴们的观看,我是EK。如果上述内容能够帮助到你们,希望你们能点赞,关注,评论,转发,你们不清楚的地方我会尽力为大家解答,谢谢大家的支持。我会给大家带来更多关于EXCEL的小技巧。
1.《(如何做仓库报表)如何做仓库出入库报表?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《(如何做仓库报表)如何做仓库出入库报表?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3270277.html