您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 关于VBA在数据处理方面的应用实例
关于VBA在数据处理方面的应用实例粮机公司穆朝卷摘要:工艺设计及其他相关工作都有大量的数据处理工作,本文举例论述如何通过VBA编程,实现大量数据处理的自动化、功能化将设计人员从单调耗时的工作中解放出来关键词:数据处理、设计、VB、VBA、程序、风网一、工艺设计数据处理的现状粮机公司工艺设计,从合同大计划安排交接开始到计划清单全部下达,中间需要进行设备清单、配套的主机设备和输送设备配置表、非标件清单等的制作等大量的数据处理工作,尤其SAP上线后,非标制作件都需要进行非标编码和描述,这无疑进一步的增加了相关数据处理的工作量。以非标件清单中的工作量最大风网预制件清单来统计,相关数据见下表:表1:规模(t/d)风网组数管件数量耗时项目(d)合计汇总排序编码描述螺栓卡箍钢材统计陕西西瑞300123801.50.52吉林容大3001648020.52.5安徽倮倮300144401.50.52由上表不难看出,风网清单的统计不仅耗时而且重复单调,简单的概括就是筛选、复制、粘贴等动作的大量重复。大量耗时且重复单调的工作不仅是对工作人员的摧残,也是人力资源的极大浪费,要将人手从这种工作中解放出来,这就需要将思维转向计算机和编程。二、语言简介目前的能应用程序语言很多,而笔者认为VB相对比较简单,于数据处理也比较方便,通常打开office文档就可以实现编程的功能。VisualBasic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。VisualBasicforApplications(VBA)是一种VisualBasic的一种宏语言,寄生于VB应用程序的版本,主要能用来扩展Windows的应用程式功能,特别是MicrosoftOffice软件。三、基于VBA的风网清单汇总处理程序举例粮机公司的风网清单都是excel表单以图元的形式嵌在AutoCAD风网图中,每组风网图都会附有一张管件清单,表格形式如下图:表2第X组XXX风网序号名称数量规格备注01-1弯头5α=90°,D=240,R=1.5Dδ=3mm01-2直管3D=240,L=400这些清单中的管件都会在最后汇总、分类排序、直管按指定的长度分段、按要求进行描述、编码,制作成最终可以直接导入系统和包含管件标记的风网总清单,表格形式如下:表3:要实现表2到表3的汇总、转换(表2与表3内容并不对应,此处只是举例说明),就需要进行程序代码的支持,先在excel中制作好表3后,打开excel的vb编辑器开始写入代码,在写入代码的同时可能程序中需要制作一些辅助的窗体,下面列出部分代码:Sub描述编码()OnErrorResumeNextDimStr1AsString'定义数据类型o=Sheets(总风网清单).Range(E65536).End(xlUp).Row'获取表格的活动行数j=Val(UserForm1.TextBox1)'将窗体1下text1的数据赋值给jp=0'设置p的初始值ForX=4Too'在表格的第四行和最后一行循环Strf=Format(n,0)'设置数据格式IfInStr(Cells(X,5),D3)0AndInStr(Cells(X,5),D4)=0AndInStr(Cells(X,5),R)=0Then判断表格第X行第5列的数据当中是否含有D3不含D4Str1=三通Q235_'条件成立,将值赋Str1Strd=03001'条件成立,将值赋StrdEndIf....总风网清单序号描述编码数量标记型号规格管件编号1风管_直管_Q235_D70_L700_0.9_卡箍_油漆YZ5970300900014D=70,L=70002-92风管_直管_Q235_D70_L300_0.9_卡箍_油漆YZ5970300900023D=70,L=30002-113风管_直管_Q235_D70_L1200_0.9_卡箍_油漆YZ5970300900031D=70,L=120002-25IfSheets(总风网清单).Cells(X,5).Value=Then'判断X行5列是否为空Sheets(总风网清单).Cells(X,2).Value='条件成立将空赋给X行2列的表格Else:'否则Str5=Replace(Sheets(总风网清单).Cells(X,5).Value,α=,)'此处将不符合描述的符号替换成空格Str6=Replace(Str5,D=,D)'此处将不符合描述的符号替换成空格Strb=Replace(Replace(Replace(Replace(Replace(Stra,,),~,_),~,_),,,_),,,_)'此处将不符合描述的符号替换成下划线Str2=LTrim(RTrim(Strc))'清除表格中的空格Sheets(总风网清单).Cells(X,1).Value=X-3'此处在第一列为管件编序号Sheets(总风网清单).Cells(X,2).Value=风管_+Str1+Str2+_+Str3+Str4+_油漆'此处生成描述Sheets(总风网清单).Cells(X,3).Value=YZ+Strf+Strd+Stre'生成编码EndIfNextXEndSub上述代码是在总清单汇集出规格型号后生成描述编码的部分代码,要实现管件汇总排序就还需更多的代码去实现。由于实现上述功能的程序代码数量过多就不一一列出。完成后的软件具有左图所示的功能,将程序打开后导入数据,然后检查数据格式,顺便统计玻璃管道的材料,检查修改无误后,全部获取,这时候就开始了所有管件的汇总、分类、排序、再汇总。汇总完成后会出现下图的对话框,填入数据后生成就会得到我们表3所示的完整的总风网清单。完成后可以将导入的数据删除,其中的螺栓统计功能来统计风网上所用螺栓,玻璃管道材料和密封胶、玻璃胶等的数量。通用以表1的数据来分析;实现数据处理程序自动化后,陕西西瑞工程的风网总清单制作及物资的统计总共需要15分钟,倮裸和容大工程的处理时间都在20分钟左右。当一项原本需要2天甚至更久的时间才能完成的工作通过计算机20分钟轻松搞定的时候,工作效率肯定不必说了,工作者的心情又该怎样形容呢四、VB/VBA在工艺设计上的应用VB不仅可以以VBA的形式在数据处理方面达到预期的效果,还可以在其他方面进行二次开发。比如CAD、Pro/e制图方面进行需要的二次开发。笔者在VB的CAD制图二次开发方面已经实现了管件绘制(弯头、三通、直管)、钢材绘制、厂房柱梁布置平面图和相应图层及标注样式自动绘制功能,但这些都只是基础功能,当将这些功能和一些以后逐渐实现的功能建立成一套设计系统用以实现工艺流程图按需求生成、平剖面图根据2层平面布置生成、风网清单根据平立剖面图管件尺寸型号生成,风网图根据平剖面图上管件的坐标尺寸三维建模成型等功能的时候,粮机公司的工艺设计员才能算真正的解脱出来了。
本文标题:关于VBA在数据处理方面的应用实例
链接地址:https://www.777doc.com/doc-2674625 .html