几分钟入门 Excel VBA,从此打开新世界的大门



懒人Excel 2018-04-11 19:58:12

写在前面

如果你不想深入学习 VBA,但是想用现成的 VBA 代码解决问题,你需要了解基本的 VBA 知识。因此推荐你仔细阅读本篇文章,实际动手运行其中列举的例子,了解 VBA 基础知识。懒人Excel 往后将会分享复杂问题的 VBA 解决方法,届时你可以直接使用提供的 VBA 程序,解决实际的问题。

如果你想系统学习 Excel VBA 知识,想自己写VBA 解决实际问题,推荐你从本篇开始,持续关注懒人Excel关于 VBA 主题的文章。懒人Excel 将会继续分享关于 VBA 语言、Excel VBA 对象、VBA 开发技巧等方面的文章,敬请关注。

Excel VBA

Visual Basic for Applications(VBA)是VisualBasic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。

以上是 VBA 的百科定义。说简单点,VBA 是运行在 Microsoft Office 软件之上,可以用来编写非软件自带的功能的编程语言。Office 软件提供丰富的功能接口,VBA 可以调用它们,实现自定义的需求。

回到 Excel VBA,用它可以编写自定义函数,编写宏,编写插件。甚至可以编写基于 Excel 的复杂的管理系统,其功能与桌面软件不相上下。

好了,开始我们今天的学习。在这篇文章,你将学习 Excel VBA 基本概念,认识 VBA 编辑器工作界面,了解 VBA 基本语法,编写你的第一个 VBA 程序。最后通过 1 个实际例子,加深 VBA 的认识,做好下一步的学习基础。

打开 VB 编辑器

VB 编辑器,即 Visula Basic 编辑器,是编写 VBA 的位置。在这里你可以查看、编写编辑、运行调试 VBA 代码。Excel 中打开编辑器有三种方法:

方法一:从功能区打开。点击功能区→开发工具→Visual Basic 命令打开。如果你为开启开发工具选项卡,请阅读这篇推送,学习如何开启。

几分钟入门 Excel VBA,从此打开新世界的大门

方法二:快捷键打开。按「Alt + F11」打开。

几分钟入门 Excel VBA,从此打开新世界的大门

方法三:从工作表查看代码命令打开。鼠标移动到任意一工作表名称处,点击右键,在菜单中选择「查看代码」打开。

几分钟入门 Excel VBA,从此打开新世界的大门

认识 VB 编辑器

几分钟入门 Excel VBA,从此打开新世界的大门

工具栏:编辑器命令栏,与 Excel 功能区域,编辑器所有命令在工具栏里可以找到。

VBA工程:通常,一个工作簿就是一个 VBA 工程,其中包括 Excel 对象、工作表对象、模块。

属性窗口:查看和设置选中对象的属性的窗口。

代码编辑窗口:实际编写代码的位置。编写、修改、保存代码,都在这里进行。

立即窗口:代码运行过程中,打印出的内容,在立即窗口中显示。通用用于调试代码。

编写第一个 VBA 程序

现在我们使用 VBA 在 Sheet1 工作表 A1 单元格写入 "Hello World" 的内容。

第一步:在 VBA工程窗口,选中工作簿名称,鼠标右键,在弹出的菜单中选择「插入」,其中选择第二项「模块」。

几分钟入门 Excel VBA,从此打开新世界的大门

第二步:经过上一步,我们插入了一个新模块。模块默认名称是「模块1」,双击模块1,在代码编辑窗口处,会打开模块1.

几分钟入门 Excel VBA,从此打开新世界的大门

第三步:将下面的代码复制到上一步打开的编辑窗口。

Sub MyCode()Sheet1.Range("A1") = "HelloWorld"End Sub

几分钟入门 Excel VBA,从此打开新世界的大门

第四步:点击工具栏绿色向右箭头,运行代码。你可以看到,Sheet1工作表 A1 单元格已经写入了我们指定的内容。

几分钟入门 Excel VBA,从此打开新世界的大门

了解 VBA 基本概念

几分钟入门 Excel VBA,从此打开新世界的大门

对象:Excel VBA 中,工作簿、工作表、单元格、图表、模块,均是对象。工作簿、工作表等对象自带一系列的属性和方法。用户插入的模块、窗体等对象,可以自定义属性和方法。

过程:过程由 1 行或多行代码组成。运行代码时,过程逐行执行代码,直至到达 End Sub 语句。通常,一个过程实现特定的目标。使用录制宏命令录制的宏,原理上会自动生成一个过程,宏就是一个过程,所以可以说宏就是 VBA。

一行代码:VBA 运行过程是逐行运行的,一行代表最小的一次操作。

初识 Excel 对象模型

了解 Excel 对象模型对学习 VBA 是极其重要的。VBA 代码想要与 Excel 交互,必须通过一个或多个对象进行。

Application 对象代表 Excel 应用程序本身,是最初第一个的对象。它包含 Workbooks 对象,即当前打开的工作簿。Workbook对象又包含 Worksheets 对象,即 Sheet1、Sheet2等。Worksheet 对象包含 Range 对象,即单元格或单元格区域。

对象已经内置一系列的属性和方法,统称为对象成员。例如,Workbook 对象有 Open、Close等方法,有Name、Author等属性。

我们以后学习和解决问题时,将会大量涉及到上述和其他对象。Excel 提供查看对象的一个工具,位置在工具栏→视图→对象浏览器。打开后,可以从左侧选择对象,右侧查看该对象的成员。

几分钟入门 Excel VBA,从此打开新世界的大门

开始使用 Dim

Dim 是 Dimension(尺寸) 的缩写,用来声明代码中的变量。意思是我们告诉 VBA ,某一变量是文本还是数字还是单元格区域。

声明变量的一个好处是,我们可以随时更改变量代表的实际数据,使代码更灵活,适用性更广。

几分钟入门 Excel VBA,从此打开新世界的大门

循环和判断

判断:正如其名字,判断某一个表达式是真(TRUE)或假(FALSE)。真,继续执行,假,跳过。

几分钟入门 Excel VBA,从此打开新世界的大门

循环:按指定的次数,循环执行某一块代码片段。这为批量管理 Excel 提供了极大的便利。

几分钟入门 Excel VBA,从此打开新世界的大门

实战:批量复制工作表

今天我们用 VBA 实现批量创建带名称的工作表。代码如下:

Sub CopySheets()'声明循环使用的整数变量Dim i As Integer'声明一个工作表变量Dim sh As WorksheetFor i = 1 To 31'新建一个工作表Set sh = Worksheets.Add'工作表名称设置为 ish.name = iNextEnd Sub

几分钟入门 Excel VBA,从此打开新世界的大门

接下来,我们运行该代码。首先插入一个新的模块,然后把代码复制到模块中,最后点击工具栏中的运行命令。这样我们创建了共31个表,名称是1-31。

几分钟入门 Excel VBA,从此打开新世界的大门

总结

全篇读下来,你基本了解了 Excel VBA 初级概念。如果你有时间,建议你把文章里的例子,自己动手编写并运行,进一步加深印象。

今天介绍的内容没有展开深入讲解,相关概念往后会详细介绍。今天只是带你基本了解 VBA,对它有一个基本的认识。


0