基于EXCEL VBA的小微企业库存系统设计

2020-03-10 09:09唐风帆陈小鹏
科学与财富 2020年33期
关键词:小微企业

唐风帆 陈小鹏

摘 要:对于小微企业的库存管理来讲,往往面临大型定制化软件不灵活且费用较高, 而用简单的excel表格来记录却功能不足的情况。因此利用EXCEL  VBA程序,量身定制一些小型的库存系统,具有一定的实用性。

关键词:EXCEL;进销存;小微企业;VBA

由于小微企业具有规模小、个性化程度高等特点,因此在仓库管理过程中,大型定制化的库存软件往往并不适用,且费用不菲。而利用EXCEL VBA编程功能,开发出适用小微企业,既灵活且高效的库存软件,具有一定的现实意义。本文用EXCEL VBA编程功能,为某小微企业的物料仓库,量身定制了一套库存系统。经该单位一年多的使用,取得了较好的应用效果。因此将该设计方案代码予以公开,给各位企业财务人员参考,并欢迎大家批评指正。

一、系统架构介绍

本系统最大的特点为:不需出入库单等一系列复杂的EXCEL表格,直接用一个物料清单加一个弹出窗口,就完成了物料的出入库核算工作。

如图1所示,物料清单表包括了该仓库所有物料名称。操作员只需在找到被操作物料,即可弹出一个操作窗口,其中可以录入出入库等信息。待信息录入完成后,在窗口中点击“确认输入”,就可以把录入的信息保持到专门的表格中(图2)进行统一保存。

二、系统的具体设计

1.弹出窗体设计

弹出窗体是整个系统的核心,所有库存操作都是在该窗体中实现。因此首先需要在VBA编辑器中插入一个窗体,并在窗体上安置各种控件。该弹出窗体的具体布局见图3,具体的控件类型和控件名称见表1。

2. 弹出窗体初始化程序设计

接下来为该窗体设计的设计初始化程序,其主要目的是为窗体上的控件赋予初始值,其中操作类型的初始值为“领用、入库、退货”; 领用人和使用地点的初始值,分别来自特定的工作表区;年月日的初始值默认取当天系统日期。具体代码如下:

Private Sub UserForm_Activate()

'对操作类型下拉框的数值设置

cmb操作类型.AddItem "领用"

cmb操作类型.AddItem "入库"

cmb操作类型.AddItem "退货"

'对物料明細文字框填充数据

txb明细.Text = ActiveSheet.Cells(Selection.Row, 1) & "-" & ActiveSheet.Cells(Selection.Row, 2)

'添加领用人的下拉框数据

For i = 2 To Worksheets("人物地点").Cells(Rows.Count, 1).End(xlUp).Row

cmb领用人.AddItem Worksheets("人物地点").Cells(i, 1)

Next i

'添加使用地点的下拉框数据

For i = 2 To Worksheets("人物地点").Cells(Rows.Count, 3).End(xlUp).Row

cmb使用地点.AddItem Worksheets("人物地点").Cells(i, 3)

Next i

'添加年月日的下拉框数据

For i = 2016 To 2030

cmb年.AddItem i

Next i

For i = 1 To 12

cmb月.AddItem i

Next i

For i = 1 To 31

cmb日.AddItem i

Next i

cmb年.Value = Year(Date)

cmb月.Value = Month(Date)

cmb日.Value = Day(Date)

End Sub

3. 命令按钮代码设计

按照系统的设计逻辑,用户只需要在窗体上输入库存操作信息,然后点击“确认输入”,就可把输入的信息,导入到个名为“数据库”的EXCEL表进行统一保存。“确认输入”按钮具体代码如下:

Private Sub cmd确认输入_Click()

Dim x As Integer

x = Worksheets("数据库").Cells(Rows.Count, 1).End(xlUp).Row + 1  '找到最新空白行

Worksheets("数据库").Cells(x, 1) = cmb年.Value   '导入年

Worksheets("数据库").Cells(x, 2) = cmb月.Value   '导入月

Worksheets("数据库").Cells(x, 3) = cmb日.Value   '导入日

Worksheets("数据库").Cells(x, 4) = cmb操作类型.Value   '导入操作类型

Worksheets("数据库").Cells(x, 5) = Left(txb明细.Value, 5) '导入物料编码

Worksheets("数据库").Cells(x, 6) = Mid(txb明细.Value, 7, 20) '导入物料名称

Worksheets("数据库").Cells(x, 7) = txb数量.Value     '导入数量

Worksheets("数据库").Cells(x, 8) = cmb领用人.Value     '导入领用人

Worksheets("数据库").Cells(x, 9) = cmb使用地点.Value     '导入使用地点

Worksheets("数据库").Cells(x, 10) = txb其他说明.Value     '导入其他说明

Unload frm录入

End Sub

4. 窗体调用代码设计

窗体调用方式是该系统的最大的创新点,传统的库存系统都在操作窗口输入物料名称,而该系统是直接在物料表上点击弹出操作窗口,同时自动把物料名称等信息带出来,这样极大的方便了仓库人员的操作,具体代码如下:

Sub 调用窗体()

If Selection.Cells.Count > 1 Then     ' 检查是否只选择了一个单元格

MsgBox "只能选择一个单元格", vbCritical, "警告"

Exit Sub

End If

Dim x As Integer                      '检查是否选择了有效行

x = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

If Selection.Row = 1 Or Selection.Row > x Then

MsgBox "選择有效行", vbCritical, "警告"

Exit Sub

End If

frm录入.Show   '显示窗体

End Sub

三、系统总结

由于篇幅的限制,该文只阐述了库存系统的核心部分,后续库存报表的汇总和分析,没有进行说明。因为该系统采取的是物料清单加弹出窗口的方式,因此首先保证了所有的物料都是统一的编码;同时每一次窗口操作,最终都导入到数据库文件统一保存,又保证了所有的库存数据都是标准格式。在此基础上,后续进行数据透视表或图表加工,是极其简便的,因此该文就不作过多的诠释。该系统的不足之处在于,由于该单位的物料管理采取的是个别辨认法,因此如果是采取先进先出或者加权平均进行物料核算的单位,需要对代码进行一定程度的修改。

参考文献:

[1] 侯志才: 《基于EXCEL的进销存信息管理系统构建》,载于《财会月刊》2015年第25期,第71-72页

[2] 苏术锋: 《基于Excel VBA进销存信息系统开发》,载于《中国管理信息化》2011年第15期,第3-4页

猜你喜欢
小微企业
温州小微企业融资环境及能力分析
“营改增”对小微企业的影响分析
小微企业中员工激励制度及流失管理