身边朋友经常问我,“猴子,我一个月总有几天,用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代码。