网站首页  词典首页

请输入您要查询的论文:

 

标题 基于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下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2024/12/23 9:09:55