首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于VBA的总装报表数字化平台的开发

作者:李戊辰 徐寅 陈刚 么爱东 来源:电子技术与软件工程

摘 要

在当前高强度总装任务下,总装调度员面临各类生产报表处理时间长且数据整理错误无法避免的问题,为此开发了基于VBA(Visual Basic for Application)语言的“总装报表数字化平台”。此系统实现了报表数据的三种自动整理模式,配套表数据汇总、配套表缺项标注以及台账合并同类项。通过半年试用,结果表明:“总装报表数字化平台”有效提高了报表中数据处理的正确率和及时性,为总装车间顺利完成火箭总装任务奠定了良好基础。

【关键词】VBA 报表 及时性 数据处理

航天新型火箭总装工作日益严峻,对零部组件缺件数据上报的准确性和及时性要求更加严格。总装工作中,用Excel处理报表信息,报表按部段细分,同时每个报表按照工序细化发布,包含了大量的重复零部组件的数据。总装调度员和库房配套员需要将相同的部分进行汇总依据每项的总数领取,然后将缺项报表以及分别标注回报表中的缺项报表及时上报,其整理工作时间紧、工作量大,易发生数据上报延误、错误等情况,如何将调度员和库房配套员从冗繁的数据报表工作中解放出来,回归业务本位,并调高数据上报的准确性和及时性,已成为一个急需解决的问题。

VBA是微软在其桌面应用程序中执行自动化任务而开发出来的新一代标准宏语言。它是由Visual Basic for Windows 发展而来的子集,不仅继承了VB的开发机制,而且有着与父级对象相似的语言结构和开发环境。VBA作为一种通用的宏语言可被所有的Microsoft可编程应用软件所共享,能与office办公软件融合,进行拓展应用的程序开发]。Excel是目前常用的电子表格软件,具有较强的计算功能和数据处理功能。通过在Excel中使用VBA编程开发,可以实现对Excel数据的不同操作,可以根据需要实现数据自动读取、计算、增删以及单元格的合并、增删以生成各类新报表,提高办公的自动化程度,最终提高数据上报的准确性、及时性。

1 功能分析及模块设计

1.1 功能需求分析

总装报表数字化平台的使用对象为总装调度员以及库房配套人员,处理对象为质量管理系统中下载的标准总装报表以及日常工作中需要整理的零部组件的台账。对于总装报表要实现两个功能:一是自动整理,除规格、图号、数量外的列与行全部删除,同一种图号和规格的零部组件数量合并,并按照图号和规格排序,关键字为图号、规格,库房人员则根据总数领取零件;另一功能为根据库房配套人员已经配套完成的报表进行智能识别,将已到的零部组件标为“已到”以及未到的部分标注为“缺项”,提示调度员缺项部分以进行调度工作。对于日常的零部组件台账整理,最主要的工作就是合并同类项,而不同的台账中,零件的规格、图号在不同的位置,报表并不规范,因此需要先进行此两项数据的选择功能,然后再合并同类项。系统的结构如图1所示。

1.2 报表数据汇总模块

此模块代码实现过程为

(1)定义过程变量,初始化。

(2)判断此文档格式是否符合此模块的处理格式,若不符合则显示提示框,并退出程序。

(3)删除冗余行列。

(4)将规格中的符号统一,例如将“X”统一为“*”等。

(5)依据关键字“图号”“规格”进行排序。

//排序过程使用了Vba的自带函数,str1与str2分别为两个关键字数据所在单元格的范围,str3为要进行排序处理的单元格范围

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range(str1) _

, SortOn:=xlSortOnValues,

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range(str2) _

, SortOn:=xlSortOnValues,

ActiveWorkbook.Worksheets("Sheet1").Sort.SetRange Range(str3)

ActiveWorkbook.Worksheets("Sheet1").Sort.SortSortMethod= lPinYin

(6)合并同类项。

//同类项合并后只需留一行数据,其余行需删除,根据Excel特性此工作需从最后一行倒序进行,其中a为待处理数据行数。

(7)保存文档。

1.3 报表缺项标注模块

此模块需要生成新的报表格式,代码实现过程中涉及的主要为单元格格式的处理,代码过程如下:

(1)定义过程变量,初始化。

(2)判断此文档格式是否符合此模块的处理格式,若不符合则显示提示框,并退出程序。

(3)判断数据占用的行数,m为行数。

(4)将序号所在列数据清空,然后根据工序进行序号标注。

(5)将序号所在单元格合并只保留序号数值。

(6)将已完成配套的零部组件备注为“已到”,未配套部分备注为“缺件”。

(7)保存文档。

1.4 台账同类项合并模块

此模块主要针对库房台账中的整理,功能主要为排序和合并同类项,排序依据的关键字有一个或者两个,且其所在的位置不定,因此需要引入下拉框选择。

代码过程如下:

(1)定义过程变量,初始化。

Do While Cells(1, i) <> "" //下拉框载入文档中的标头

ComboBox1.AddItem Cells(1, i)

ComboBox2.AddItem Cells(1, i)

i = i + 1

Loop

(2)选择关键字。

(3)根据选用关键字的数目分两种情况进行处理。

(4)选定关键字后,依据关键字进行排序;将数据中的符号统一,例如将“X”统一为“*”等;合并同类项。此过程与2.2中的(4)(5)(6)相同。

(5)保存文档。

2 效果评价

经过6个月的试运行,将人工整理报表和使用“总装报表数字化平台”整理报表两种方式下所用的工作时间以及报表数据的准确率进行对比,结果如表1所示。

从表1中可以看出,基于Excel VBA开发的“总装报表数字化平台”的使用,实现了用计算机开发软件系统的方式来解决人工处理报表易出错、效率低等问题,大幅提高了报表处理的及时性和准确性,使人工1~2小时才能完成的工作,提升至2~4分钟即可完成。

3 结论

Excel本身具有良好的数据处理功能,而利用VBA则进一步按照需求可以自由定制报表。基于VBA开发的“总装报表数字化平台”充分利用了Excel强大的数据处理能力,并提供了界面支持,程序结构简单,有很好的可移植性等优点。系统投入使用后,成功解决了人工处理报表过程中易出错、效率低的问题。随着生产的扩大,平台数据处理功能也将用于其他标准表格,并进一步推广到其他部门。但是此平台所处理的报表需要有特定的格式,若报表格式发生变化,此平台软件不再适用,则需要开发新的应用软件。

参考文献

[1]孙晓凤,马力等.基于微粒群优化算法的高效电装生产管理模式探讨[J].航天制造技术,2013,12(6):62-66.

[2]李志锐,李法虎.基于VBA技术的AutoCAD二次开发在地形图绘制中的应用[J].农业工程学报,2007,23(10):25-30.

[3]王婷.基于Excel及VBA的配置管理工具的设计与实现[D].北京工业大学,2012.

[4]杨婷,常霞,粘丹妮.卫星遥测数据处理软件的Excel VBA实现[J].计算机测量与控制,2014,22(8):2677-2679.

[5]黎升洪.Access数据库应用与VBA编程[M].北京:中国铁道出版社,2011.

作者简介

李戊辰(1988-),男,天津市人。现为天津航天长征火箭制造有限公司测试技术员。研究方向为控制科学与控制工程。

作者单位

天津航天长征火箭制造有限公司 天津市 300462