VBA
1、 语法,编程的基础
1.1 VBA中有哪些数据类型
VBA里的数据类型有:字节型(Byte)、整数型(Integer), 长整数型(Long), 单精度浮点型(Single), 双精度浮点型(Double),货币型(Currency)等等
数据类型 | 类型标识符 | 字节 |
---|---|---|
字符串型 String | $ | 字符长度0-64500 |
字节型 Byte | 无 | 1 |
布尔型 Boolean | 无 | 2 |
整数型 Integer | % | 2 |
长整型 Long | & | 4 |
单精度型 Single | ! | 4 |
双精度型 Double | # | 8 |
日期型 Date | 无 | 8 |
货币型 Currency | @ | 8 |
小数点型 Decimal | 无 | 14 |
变体型 Variant | 无 | 以上任意类型 |
对象型 Objecrt | 无 | 4 |
2、 存储数据的容器:常量和变量
2.1 声明变量
- 语法:Dim 变量名 As 数据类型
Dim Str As String //(Str就是装String类型的数据)
Dim str As String*10 //(表示最多装10个字节数据)
使用变量类型声明符(简写模式)如上图所示类型标识符
Dim Str$ (这里$字符串, 原来美元就是一个字符串丫)
-
声明多个变量(逗号隔开)
Dim str As String, num As Integer,
相当于:
Dim str As String
Dim num As Integer
- 如果不指定变量类型
Dim Str (默认是Variant类型)
什么是Variant
所有数据类型统称,它表现所有数据类型,意味它很大(一般不要声明为Variant,你计算都不知道应该给你这个变量分配多少内存,杀鸡焉用牛刀一个道理)
- 强制声明所有变量
方法一:在模块的第一句手动输入代码:“Option Explicit”,它会强制检查。
方法二:在工具菜单栏中有设置选项,在每一次插入模块自动会添加 Option Explicit
还可以声明变量的作用域(也就是变量在哪里有效)
语法一: Public 变量名 As 数据类型
语法二:Private 变量 As 数据类型
语法三:Static 变量名As 数据类型
例如:
Public str As String
Private str As String
Static str As String
- 变量的作用域
作用域 | 描述 |
---|---|
单个过程 | |
单个模块 | |
所有模块 |
把数量存储到变量里
2.2 基本数据类型变量赋值
- 语法 【Let】 变量名称 =数据 (【】表示可以省略)
简写为 变量名称=数据
Option Explicit ‘强制语法检查
Sub 第一个宏()
Dim str As String '声明变量名为str,类型为String
Let str = "一起来学VBA" '将“一起来学VBA”赋值给str变量,那么str就代表这个字符串
Range("A1").Value = str '将字符串转换填充单元格A1
End Sub
- 给对象变量赋值,语法
Set 变量名称 = 对象(Set不能省略)
Option Explicit
Sub 第一个宏()
Dim rng As Range '声明一个Range变量,可以表示单元格
Set rng = Worksheets("Sheet2").Range("A1") '将工作表Sheet1的A1单元格对象赋值给rng
rng.Value = "学习VBA就是这么简单" '这时候rng就代表A1单元格
End Sub
2.3 使用常量
常量通常用来存储一些固定的不会被修改的值,如圆周率π,各种税率 (其实就是取有意义变量代替值)
所以只能赋值一次
- 语法: Const 变量名称 As 数据类型 = 数值
常量作用域类似变量,在过程中定义,过程内可用(本地常量),过程外定义,模块级常量, public + 过程外定义 公共常量