在本节中,我们将考虑 VBA 是什么,因为宏是写在它上面的。
VBA 是一种嵌入式编程语言(代表 Visual Basic for Applications),由 Microsoft 开发。该语言不是独立的,而是仅用于 MS Office 软件包中的自动化流程。 VBA 广泛用于Excel,以及Access、Word 和包中的其他程序中。
VBA 是一种任何人都可以学习的简单编程语言。一旦你学会了它,你将能够给出 Excel 命令,如何处理列、行、单元格值,移动/添加/排序工作表,显示预编程消息,编写自己的公式和函数等等。语言的本质是对对象进行操作。
要使用 VBA 代码,我们需要一个编辑器 (Visual Basic Editor),默认情况下它已安装在 Excel 中。您可以通过按组合键“Alt+F11”打开它。
让我们了解一下 VBA 中的对象是什么。
VBA 一个对象是一个元素,一个结构粒子Excel,即:book、sheet、range、cell。
VBA 对象具有层次结构,即它们彼此从属。示意性地,Excel中的层次结构可以表示如下:
最重要的对象是Application,它对应于Excel 程序本身。 接下来是 Workbook(书籍)、Worksheet(工作表)、Range(范围或单个单元格)。
例如,要引用工作表中的单元格“A1”,我们需要编写以下路径,并考虑层次结构:
Application.Workbooks("Archive").Worksheets("Sheet1").Range("A1")
因此,我们学会了引用 Excel 中的最小对象 - 单元格。
反过来,VBA 对象属于“集合”。
VBA 集合是同一类对象的一组(数组)(一组书籍、工作表等)。是的,所有 Worksheet 对象都是 Worksheets 集合的元素。反过来,集合也是一个对象。
相同的对象可以属于多个集合。例如,Worksheet 对象也属于 Sheets 集合。 Sheets 集合包含工作簿中的所有工作表 - 两个图表(也被视为工作表 (Chart) 和数据表 (Worksheet))。
VBA Excel 中存在以下集合:
VBA 中的每个对象都有属性。例如,Range 对象具有 Value 或 Formula 属性。
Worksheets("Sheet1").Range("A1").Value 或 Worksheets("Sheet1").Range("A1").Formula
在此示例中,该属性显示输入到单元格中的值或输入的公式。
另外,通过 Formula 属性,您不仅可以获取公式,还可以将其写下来:
MsgBox Range("A1").Formula - 我们将收到一条包含单元格“A1”中公式的消息;
Range("B12").Formula = "=2+6*100" - 在单元格“B12”中输入公式“=2+6*100”。
现在让我们看看如何操作区域或单元格的内容。为此,VBA 中有所谓的方法(“做什么”命令)。编写代码时,方法与对象之间用点分隔,例如:
Range("A1").Select 或 Cells(1,1).Select
此方法指定选择 (Select) 单元格“A1”。
接下来,我们删除该单元格中的值。为此,我们将编写以下代码。
Selection.ClearContents
这里程序“获取”我们选择的内容 (Selection) 并清除其内容 (ClearContents)。