如何将重复工作实现自动化?

2020-09-02 10:18:40 浏览数 (1)

身边朋友经常问我,“猴子,我一个月总有几天,用Excel干同一件机械重复的事儿,有没有省时省力的招儿?”

我一般都是嘴角莫名的上扬,露出《肖申克救赎》里主人公安迪的“天台式神秘微笑”,“那只能是VBA了”。

1.什么是VBA?

先看下百度百科上的解释:

VBA(Visual Basicfor Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。 主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。它也可说是一种应用程式视觉化的 Basic 脚本。

这也太难懂了,用能听懂的话,怎么说?

用大白话说就是,编辑一段小程序在Excel上自动运行,节省更多时间玩农药。

2.VBA有什么用?

记得以前部门招聘新人,拿到他们的简历,感觉大家都差不多。可是,公司只招1个人,只能优中择优。

因为部门是整个公司的数据处理中心,所以对数据的处理时效还是要求挺高的。而各部门的数据传输也主要是Excel表格,所以处理上我们也多数用Excel。所以,最终还是选择了额外还会VBA的求职者。

我想说的是,有些时候,多掌握一些,就会多一份选择、多一份机会。

VBA的作用包括:

(1)自定义函数、公式,实现特殊需求

(2)自动化批量处理,提高工作效率

(3)结合插件功能,实现小型软件管理

来个实际的应用案例。下图是一个学习1周后的小伙伴,用VBA做的一键刷新的数据可视化(全公司的员工绩效可视化图表),真是既好看,又实用。

当然了以我自己和朋友的经历来看,VBA是我们职场的“硬核加分之技能,撩妹装逼之法宝,升职加薪之利器”。

3.如何使用VBA?

(1)VBA怎么开启?

打开Excel,点选左上角「文件」

点选左下角「选项」

点选左侧栏的「自定义功能区」

点选右侧「开发工具」 打钩,并「确定」

检查「开发工具」是否开启

这么厉害的大杀器,不懂为什么要隐藏这么深?是怕我们学会吗?

(2)VBA界面简介

点选「Visual Basic」

弹出以下界面

功能区:用于代码调试、执行、监控、粘贴等功能

代码编辑区域:编辑自己设计的代码

工程资源管理器:显示和管理不同的代码文件

属性区域:设置不同代码文件的属性,比如:名称、颜色、背景、字体等

(3)工程资源管理器

事件代码:该类代码一般指发生了内容变化的事件时,执行某个小程序,其写在某个sheet表格内(事件的发生场所)。

举个例子,我们规定sheet1中单元格A1单元格为「文本」,如果我们输入「数值」,Excel将自动运行程序检测所填内容是否符合设定的要求(类似于Excel的「数据验证」功能)

模块(标准代码):该类代码我们常见的用途是以按钮等形式点击就可运行的程序。例如,设定一个按钮,该按钮链接一个小程序,小程序主要功能为合并多个工作簿,那么当我们单击这个按钮时,就会执行多个工作表合并。

「类代码」和「窗体代码」大家了解即可,后面我们会逐步介绍。

前面的没看懂?没关系。你只需要记住,平常90%的都是写 “模块(标准代码)”就行了。

如何建立模块?点选左上角「插入」-「模块」,系统自动生成界面。

说了这么多,来2个实操案例吧。

(3)VBA案例

案例1:自定义「日期季度转换函数」

上述的代码是自定义了一个「日期转换季度」函数,这个案例之前出现在实际的工作场景中,当然了这个公式是简化版的。

这里大家重点掌握的就是:利用VBA可以开发工作中常用,但Excel中没有的公式,从而实现重复工作的自动化。

相关的语法,我们在下一篇文章详细讲解(包教包会的那种)。

案例2:批量修改所有文件名

其实工作中有很多类似这样的重复工作,例如批量更改文件名称、批量汇总多个工作表、批量汇总多个工作簿、自动比对数据、批量生成多个Excel文件等等,都可以用VBA自动化解决。

下面这个案例是批量更改指定路径下所有文件名

上面这个批量「更改指定路径下所有文件名」的程序,由两个程序组成:文件名提取和文件名更换,可以针对指定路径文件夹(文件夹在哪里)下任何类型文件,更改为指定名称。

这个程序,我们平常的用途还是挺多的,尤其是收集各单位的Excel需求后。

大家拿去,可以直接使用,文件里有详细的说明步骤。

4.有哪些注意事项?

(1)如果勾选「开发工具」功能区并没有出现,可以关掉当前Excel,重启Excel。

(2)VBA程序的文件后缀为“.xlsm”

(3)别看上面的VBA代码,密密麻麻,其实没那么复杂。1个仅学习1周的同学都可以做出,那么实用又好看的分析表格。我觉得,你一定也可以。

这次我们知道了什么是VBA、有什么用、如何使用,下次我们聊聊如何写出案例中的VBA代码。

0 人点赞