首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈如何有效利用VBA提高工作效率

眼看Deadline就要到了,还有几百张图纸没有出,一大堆报表没有做,怎么办?小编今天给大家谈一谈这周我是如何利用VBA快速完成机械工作的……

小编工作是属于智能制造的,目前手里有一个巴基斯坦的核电项目,控制的时间非常紧凑,眼看下周就到交设计图纸的截至时间了,老巴提出需要将所有接线点表的以图纸形式交付。纳尼?干过电气工程的人都知道,一个核电测点动辄几千上万,这个图纸的工作量初步估计需要三人加班做两周的。怎么办?

注:图片来自网络

刚开始和平时一样开始估算工作量,计算需要介入人数,但毕竟很大部分是重复的机械工作,小编不甘心。然后开始查相关资料,思考是否能通过其他办法来提高工作效率。最后锁定了VBA。

不得不说,互联网的建立,大大降低了我们知识获取的成本。从从未接触vba到写出八百行代码,完成工作,批量生成500张图纸,大概没有人相信我只花掉了从昨天下午6点到今天凌晨5点半,不到12小时时间。

注:部分代码截图

首先,我先通过百度百科查了vba是个什么工具,然后,下载了三本vbc教程《Excel.VBA从入门到精通》《excel中vba技术应用》《VBA常用代码与技巧解析》。从大学C语言后,就没有接触过编程的我,就这么开始尝试了。

18:05~18:15花10分钟从excel中进入vba编程模式,并调试解决各种打开或关闭问题。

18:15~19:00尝试定义出变量类型,并完成将本工作表sheet1中B2单元格中的内容拷贝到sheet2中E5单元格中。

19:00~20:00完成通过程序打开同文件夹下的另一个excel表格。各种实验如何在不同工作表之间实现切换。

20:00~20:30实现了从本文件中指定内容copy到其他excel中。

20:30~21:00研究for语句,从定义上来讲和C语言的for语句差不多,经过5~6次调试,掌握了for语句的应用。

21:00~21:30考虑表格中有需要条件判断的语句,研究了if语句,特别是end if总是报错,经过研究,发现是先前的with语句出错了。这里要给大学认真学C语言的我点个赞,虽然已经毕业五年,但是这些语句一看就懂。

21:30~23:00研究如何另存工作表,应为我计划将模板放在本vba工作表中,减少附加工作表数量。但是,从晚上荡到的另存程序总是报错。研究了很长时间,期间还煮了份面,和朋友聊了微信。

11:00~00:00成功另存文件后,开始写第一个程序,通过for语句轮询io清单,用if语句找出站号卡号通道号相符的测点,将测点与站号卡号填入模板中另存模板。

00:00~1:00另存模板总是多次打开,考虑这样下去太消耗内存,研究了一个可以检查模板是否已存在的程序,成功解决问题。

1:00~3:00调试第一个模板程序,考虑要将该程序用在其他项目上,因此预留了很多Interface,第一个模板最后下来差不多150行程序,前后调试2个多小时。

3:00~3:30检查模板中的问题,核对第一个模板生成文件与原io清册数据的差异。期间煮了碗鸡蛋挂面补充一下能量。

3:30~5:00完成剩余的6个模板代码,考虑到智能匹配数据,还修改了原来的代码,增加了容错能力,并且,将错误输出到bug工作表中。增加用户界面,方便操作。

5:00~5:40花十分钟生成图纸,又花了半个小时欣赏自己的奋斗成果。

6:00睡觉。

中午睡醒又欣赏了一下自己的成果,然后分享一下经验。最后放两张成果图。

注:需要排的io清册以及用户界面

注:需要排的io清册以及用户界面

各位如果需要我做一些模板,关注后留言,友情技术支持哦!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180121G09HVL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券