在上一章《Excel VBA 基础》中,我们学习了一些基本的概念和操作。在一些教程中,出现了具体的 VBA 代码,你可能不是很明白。没关系,从本章《VBA 变量、类型和运算符》开始,我们就要具体学习 VBA 语法部分,带你进入真实的 VBA 世界,让你写出真正能用得到的代码。
本篇我们学习 VBA 最基本的一个概念,VBA 变量。
戳我学习>>知识兔精品课《Office2019零基础入门精通全套大师级课程》
什么是 VBA 变量
VBA 变量是一个存储数据的 VBA 代码结构。变量存储的数据,可在程序运行过程中改变。又能代表它存储的数据,在程序中参与各类计算。
变量可以简单理解为 Excel 中的单元格引用地址,例如 A1。在公式中,A1 代表 A1 单元格内的数据,参与计算。
变量有两个重要的概念,变量名和变量类型。
- 变量名:代表变量的名称
- 变量类型:变量存储的数据的类型,例如数字、文本、逻辑值等。
声明变量
如果想在代码中使用变量,需要先声明,即给出变量名和变量类型。
声明变量使用以下语法:
Dim [变量名] As [数据类型]
Dim
和As
是 VBA 中声明变量需要使用的关键词。Dim
表示声明语句的开始,As
表示在它之后指定数据类型。
[变量名]
和[数据]
是,声明代码中可变部分,需要用户输入。
- [变量名] 就是该变量的名称
- [数据类型] 是该变量的数据类型
声明变量实例
我们看一个实际的例子,现在声明两个变量,一个是员工姓名、一个是员工年龄。
Dim name As StringDim age As Integer
可以看到,name
和age
是变量的名称,String
是文本类型数据,代表员工姓名;Integer
是整数数据类型,代表员工年龄。
命名变量
上述部分我们学到了声明变量的基本语句,其中变量名是需要用户自己输入。VBA 中规定,变量命名需要符合以下条件,否则程序出错。
- 首字母必须以字母开头。
- 不能包含空格、.(英文句号)、!(感叹号)、@、&、$、# 等字符。
- 长度不能超过 255 个字符。
- 不能使用 VBA 中保存的关键词作为变量名。
以上是变量名必须符合的规则。符合规则的前提下,虽然可以随便命名,但在实际开发过程,建议按驼峰法命名。
驼峰法是一种很多编程语言通用的命名规则,优点是可读性高、易于理解。
骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母。
例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
变量类型
变量的第二个重要元素是变量类型,即变量存储数据的数据类型。正确指定数据类型,可以使程序编写和运行效率更高,并且易于理解。
另外,指定数据类型后,如果赋值不同类型的数据,VBA 会提示错误,这样可以避免使用错误的数据。
VBA 中的数据类型主要分为三大类,一个是数字类型,一个是非数字类型,一个是通用类型。
数字类型
数字类型的变量顾名思义,均是以数字变量。不同类型其数据范围有区别。
类型 | 说明 | 数据范围 |
---|---|---|
Byte | 字节 | 0 至 255 |
Integer | 整数 | -32,768 至 32,767 |
Long | 长整数 | -2,147,483,648 至 2,147,483,648 |
Single | 单精度浮点数 | 在表示负数时: -3.402823E38 ~ -1.401298E-45 在表示正数时: 1.401298E-45 ~ 3.402823E38 |
Double | 双精度浮点数 | 在表示负数时: -1.79769313486231E308 ~ -4.94065645841247E-324 在表示正数时: 4.94065645841247E-324 ~ 1.79769313486231E308 |
Currency | 货币 | -922,337,203,685,477.5808 至 922,337,203,685,477.5807 |
Decimal | 定点数 | 未放置定点数: +/- 79,228,162,514,264,337,593,543,950,335 放置定点数: +/- 7.9228162514264337593543950335 |
非数字类型
非数字变量通常不能直接参与算术运算。
类型 | 说明 | 数据范围 |
---|---|---|
String | 文本类型 | 0 至 20亿字符 |
Boolean | 逻辑值 | True 或 False |
Date | 日期和时间 | 时间:00:00:00 至 23:59:59 日期: 100-1-1 至 9999-12-31 |
Object | 对象 | VBA 和 Excel 对象 |
通用类型
通用数据类型,指的是可存储任何类型的数据。在程序运行过程,VBA 可以自动识别数据类型,参与计算。
类型 | 说明 | 数据范围 |
---|---|---|
Variant | 任意类型 | 不限 |
Variant 类型虽然灵活,但是它会占用更多内存空间,执行效率也会受影响。因此建议,在明确知道数据是何种类型时,指定数据类型;如果数据类型是可变的或不明确,使用 Variant 类型。
给变量赋值
关于变量的基础知识学完了,接下来就是如何给变量赋值。
给变量赋值很简单,使用以下语法:
[变量名] = [数据]
赋值语法核心就是 =
(等号),变量在左侧,数据在右侧。可以理解为变量等于赋值的数据。
一个值得注意的点是,[数据]的形式。
- 数据可以是直接书写的内容,例如 2、”学校”、True等。
- 也可以是另外一个变量
给变量赋值完成后,在后续的程序中,就可以使用变量参与各类计算。
我们看一下具体的例子。
Dim name As Stringname = "张三"Range("A1") = name
以上代码,先声明了 name
变量,数据类型为文本。然后给它赋值了张三
文本。最后将name
变量的数据,写入到工作表 A1 单元格。
总结
本篇主要介绍了 VBA 中的最基本的概念,变量。因为变量的值在程序运行过程中可以变化,因此使程序效率大大的提高。使用变量主要有3个步骤:
- 声明变量
- 指定变量的数据类型
- 给变量赋值