家好,今天是从零开始制作【出入库报表】第三课,上一课我们实现了出入库流水的增加功能。今天,我们来接着实现新的功能。有了出入库流水以后,我们就会涉及查找库位和和数量。首先为大家演示一下,完成以后的效果图。
< class="pgc-img">图1 库位信息查询效果图
>那我们是如何制作的呢?
这里,EK说一下思路。
1、查看库位信息主要涉及:“产品名称(QAD)”,“库位”、“库存数量”等方面。
2、这里我们通过“产品名称”来做标识。
3、逻辑关系:产品-库存数量=【产品-入库数量】-【产品-出库数量】、产品-库位-库存数量=【产品-库位-入库数量】-【产品-库位-出库数量】
4、理清逻辑关系。一步一步,进行功能实现。
下面,我们来实现查询库存库位信息
1、我们先给【入库流水账】和【出库流水账】中添加一下演示数据。如图2和图3.
图2 入库流水账演示数据
>图3 出库流水账演示数据
>3、在【库存跟踪表】中E2的公式为:E2=SUMIF(入库流水账!$A:$A,$A6,入库流水账!$E:$E)-SUMIF(出库流水账!$A:$A,$A6,出库流水账!E:E)。往下填充至最后一行。操作如下:
< class="pgc-img">图4 公式效果图
>4、打开VBE窗口,这里有两种方法。第一种,快捷键【ALT】+【F11】。第二种,点击[开发工具]选项卡中的[查看代码]。
5、在模块1中创建两个过程:
过程1 代码如下:
Sub 生成库位信息()
Dim ArrRK, ArrCK, ArrGZ, arrg, ArrFZ(), hrq, hcq, hgz
hrq=Sheets("入库流水账").Cells(Sheets("入库流水账").Rows.Count, 1).End(xlUp).Row '【入库流水账】第1列最后一行行号
hcq=Sheets("出库流水账").Cells(Sheets("出库流水账").Rows.Count, 1).End(xlUp).Row '【出库流水账】第1列最后一行行号
hgz=Sheets("库存跟踪表").Cells(Sheets("库存跟踪表").Rows.Count, 1).End(xlUp).Row '【库存跟踪表】第1列最后一行行号
Sheets("库存跟踪表").Range("f6:m" & hgz)="" '清楚库存跟踪表的库位库存区域
'将入库流水中的数据赋值给数组
ArrRK=Sheets("入库流水账").Range("a2:g" & hrq)
ArrCK=Sheets("出库流水账").Range("a2:g" & hcq)
ArrGZ=Sheets("库存跟踪表").Range("f6:m" & hgz)
arrg=Sheets("库存跟踪表").Range("a6:m" & hgz)
Set d=CreateObject("scripting.dictionary") '创建字典
'将库位、库存数量赋值给ArrFZ数组
For i=1 To UBound(ArrRK)
If Not d.exists(ArrRK(i, 1) & "-" & ArrRK(i, 7)) Then
n=n + 1
d(ArrRK(i, 1) & "-" & ArrRK(i, 7))=n
ReDim Preserve ArrFZ(1 To 3, 1 To n)
ArrFZ(1, n)=ArrRK(i, 1)
ArrFZ(2, n)=ArrRK(i, 7)
ArrFZ(3, n)=ArrRK(i, 5)
Else
m=d(ArrRK(i, 1) & "-" & ArrRK(i, 7))
ArrFZ(3, m)=ArrFZ(3, m) + ArrRK(i, 5)
End If
Next
For j=1 To UBound(ArrCK)
If Not d.exists(ArrCK(j, 1) & "-" & ArrCK(j, 7)) Then
MsgBox "库位生成错误!错误信息:" & vbnewline & "QAD:" & ArrCK(j, 1) & vbnewline & "行号:" & j + 1 & vbnewline & "库位号:" & ArrCK(j, 7)
Exit Sub
Else
m=d(ArrCK(j, 1) & "-" & ArrCK(j, 7))
ArrFZ(3, m)=ArrFZ(3, m) - ArrCK(j, 5)
End If
Next
For j=1 To UBound(ArrFZ(), 2)
If ArrFZ(3, j) <> 0 Then
For i=1 To UBound(arrg)
If ArrFZ(1, j)=arrg(i, 1) Then
If arrg(i, 6)="" Then
arrg(i, 6)=ArrFZ(2, j)
ArrGZ(i, 1)=ArrFZ(2, j)
ArrGZ(i, 2)=ArrFZ(3, j)
ElseIf arrg(i, 8)="" Then
arrg(i, 8)=ArrFZ(2, j)
ArrGZ(i, 3)=ArrFZ(2, j)
ArrGZ(i, 4)=ArrFZ(3, j)
ElseIf arrg(i, 10)="" Then
arrg(i, 10)=ArrFZ(2, j)
ArrGZ(i, 5)=ArrFZ(2, j)
ArrGZ(i, 6)=ArrFZ(3, j)
ElseIf arrg(i, 11)="" Then
arrg(i, 11)=ArrFZ(2, j)
ArrGZ(i, 7)=ArrFZ(2, j)
ArrGZ(i, 8)=ArrFZ(3, j)
Else
MsgBox "超出库位范围!请合理安排库位"
End If
End If
Next
End If
Next
Sheets("库存跟踪表").Range("f6").Resize(UBound(ArrGZ), UBound(ArrGZ, 2))=ArrGZ
'释放数组内存
Erase ArrRK
Erase ArrCK
Erase arrg
Erase ArrFZ
MsgBox "数据生成完毕"
End Sub
过程2 代码如下
Sub 清空库位信息()
hgz=Sheets("库存跟踪表").Cells(Sheets("库存跟踪表").Rows.Count, 1).End(xlUp).Row '【库存跟踪表】第1列最后一行行号
Sheets("库存跟踪表").Range("f6:m" & hgz)=""
End Sub
以上代码,已经经过测试,可以完成库位库存的生成。
< class="pgc-img">图5 过程信息代码
>6、 在【库存跟踪表】中添加两个按钮,名称分别为,“生成库位信息”,“清空库位信息”。按钮分别指定宏为过程1-生成库位信息和过程2 -清空库位信息。
操作步骤如下:
< class="pgc-img">图6 插入控件
>这里,我们就完成了,我们的库位和库存信息的生成与清空功能。
我们来看一下效果。
< class="pgc-img">图7 效果图
>到这里,我们今天所希望完成的表单功能,库位库存查询已经完成。明天我们接着来完善表单的其他功能。如果,有不懂的地方,可以在评论区告诉EK。如果想获得文中的文件,可以关注私信EK。
最后,感谢小伙伴们的观看,我是EK。如果上述内容能够帮助到你们,希望你们能点赞,关注,评论,转发,你们不清楚的地方我会尽力为大家解答,谢谢大家的支持。我会给大家带来更多关于EXCEL的小技巧。
开路径:【主菜单】->【仓库】-> 【报表】-> 【出入库明细表】
出入库明细表用来查看一段时间的所有出入库单据
表格中白色是入库单记录,绿色是出库单记录
入库单类别包括采购入库单、成品入库单、委托加工入库单、销售退货单、生产退料单、其它入库单等
出库单类别包括销售发货单、原材料退货单、生产领料单、委托加工领料单、其它出库单等
< class="pgc-img">>查看单据明细
在单据编号上双击可以打开该单据
< class="pgc-img">>< class="pgc-img">>查询条件
可以按物料分类、单据类别、仓库、物料、单据日期进行查询
< class="pgc-img">>表单布局
可以通过表单布局将隐藏的内容显示出来
< class="pgc-img">>1、项目名称
有些行业是以项目的方式开展业务的,因此所有单据都要显示项目名称
< class="pgc-img">>所以出入库明细表需要能按项目名称查询
< class="pgc-img">>2、批次号
有些行业比如化工、医药需要用到批次号
< class="pgc-img">>< class="pgc-img">>3、库位
< class="pgc-img">>< class="pgc-img">>4、组织名称
有些企业多个公司共用一个账套,这就涉及多组织管理
< class="pgc-img">>< class="pgc-img">>5、按部门
部门名称对内就是各部门,对外就是供应商名称和客户名称
< class="pgc-img">>< class="pgc-img">>6、自由项
自由项就是让用户自己定义一个属性,让ERP系统更符合客户实际需要。
< class="pgc-img">>< class="pgc-img">>< class="pgc-img">>表体布局
表体布局就是表格内显示列的设置
< class="pgc-img">>< class="pgc-img">>导出
导出到excel
库管理软件价格不菲,小企业通常不舍得买。
小编今天分享一套excel进销存表格,非常适合仓库货物进出仓库的做账记录。功能强大,自动计算库存,自动生成进出存汇总。并且运行速度很快,操作也简单,没啥经验的仓管也能学会。
< class="pgc-img">>主界面
仓库进销存系统主界面,使用了VBA编程与excel函数。主要分货品资料、成本价信息以及进出货的查询。
< class="pgc-img">>销售录入
< class="pgc-img">>销售数据
< class="pgc-img">>入库单
< class="pgc-img">>入库数据
< class="pgc-img">>库存数据查询
< class="pgc-img">>销售数据查询
< class="pgc-img">>货品成本价
进出存
货品资料
......
需要完整版资料的小伙伴看这里哦~
< class="pgc-img">>获取方式:1、评论区留言:学习
2、关注我,斯我“表格”即可!