(一)什么是VBA?什么是宏?
VBA (Visual Basic For Application)是一种编程语言,是建立在Office中的一种应用程序开发工具。可以利用VBA有效地扩展Excel的功能,设计和构建人机交互界面,打造自己的管理系统,帮助Excel用户更有效地完成一些基本操作、函数公式等不能完成的任务,从而提高工作效率。顾名思义,VBA使用的编程语言是VB。
VBA是编程语言,宏是用VBA代码保存下来的程序。录制的宏只是VBA里最简单的程序,正因为如此,录制的宏存在许多的缺陷:如无法进行判断和循环,不能显示用户窗体,不能进行人机交互……要想打破这些局限,让自己的程序更加自动化和智能化,仅仅掌握录制和执行宏是远远不够的,还需要掌握VBA编程的方法,自主地编写VBA程序。这就是我们学习VBA的目的。
(二)VBA的一个简单应用
图1 图2
如图1所示的表格,现在需要将其制作为图2所示的工资条,发给每名员工。你会怎么做?
方法一:复制第一行,不停地粘贴该行。问题是数据量较少时,10、20、50,甚至100这种方法都还能接受,数据量突破200时就显得特别笨了。
方法二:录制宏
录制宏简单而言就是将重复的操作合并为一个动作,然后不断重复该动作。
录制宏前需要如下操作进入宏的录制:
以本题而言,需要集合的操作为 选中目标行——复制——选中要粘贴的位置——复制——选中控制单元格,宏的录制过程即如下:
这样就将一系列的操作整合为了这样一个宏操作,相当于每执行一次宏就执行了一次上面的所有的操作。可以给宏设置快捷键。如图
点击确定后就将ctrl+p设为了名为“生成工资条”的宏的快捷按键,每按一次就执行一次宏。
通过录制宏大大简化了操作,但仍然比较繁琐,如果有1000条数据,需要按键1000次,如果有2000,5000呢?有没有更方便的方法呢?
方法三:录制宏+VBA编程
在方法二的录制宏的基础上继续改进,采用VBA编程的方法。
首先点击宏——查看宏,点击“编辑”
进入VBA编程的代码查看界面
上图是VBA编程界面,代码完全是录制的宏对应的代码。如下:
现在我们需要对这段代码进行修改,直接完成方法二中所需要进行的多次按键操作。共需要修改两处。
第一处:
在Sub 宏名():下面加上如图两行,其中1 To 259 根据实际数据行数进行变化。
第二处:
在End Sub前加上一行Next,使得代码循环。
更改后代码为:
保存代码后,点击宏——查看宏——运行。直接生成所有需要的工资条。
(三)总结
初次认识了宏和VBA编程,通过简单例子显示了宏及VBA编程的高效,尤其针对大量数据的重复性操作,可以起到指数级的速度提升。