标题 | 基于EXCEL VBA的小微企业库存系统设计 |
范文 | 唐风帆 陈小鹏
摘 要:对于小微企业的库存管理来讲,往往面临大型定制化软件不灵活且费用较高, 而用简单的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页 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。