第1部分 变量
1.1 数据类型
1.1.1 常用数据类型
序号 | 类型 | 类型名称 | 储存 | 范围 |
1 | byte | 字节型 | 1个字节 | 0~255 |
2 | boolean | 布尔型 | 2个字节 | True或者False |
3.1 | integer | 整数 | 2个字节 | -32768~32767 |
3.2 | long | 长整数 | 4个字节 | -2147483648~2147483647 |
3.3 | single | 单精度 | 4个字节 | 可以是整数和小数,最大长度8位 |
3.4 | double | 双精度 | 8个字节 | 可以是整数和小数,最大长度16位 |
4 | string | 字符串 | 10个字节+字符串长度 | 0~20亿 |
5 | date | 日期 | 8个字节 | 100年1月1日至9999年12月31日 |
6 | variant | 变量 | 16或22字节 | 基本可以代表其他所有数据类型 |
1.1.2 数据类型简写
类型 | 类型名称 | 简写 |
integer | 整数 | % |
long | 长整数 | & |
single | 单精度 | ! |
double | 双精度 | # |
string | 字符串 | $ |
1.1.3 数据类型声明注意点
1)选合适的数据类型可以缩小储存空间
2)声明为single会出现累计时四舍五入的情况,导致最后计算出的数有差异,如果对计算结果要求比较精确,最好声明为double(原因:计算机只能处理二进制的数,当有小数点时精度越少,测量的越不标准,小数存储不精确)
注:声明方法在 1.5 变量声明
1.2 对象
1.2.1 什么是对象
是指应用VBA程序控制的元素,比如工作表、单元格、图表、窗体或报表
1.2.2 常用对象
序号 | 类型 | 含义 |
1.1 | WorkBooks | 工作簿 |
1.2 | ActiveWorkBook | 活动工作簿 |
1.3 | ThisWorkBook | 代码所在工作簿 |
2.1 | Sheets(n) | 第n个工作表,按照excel工作簿从左往右的顺序 |
2.2 | Sheetn | 第n个工作表,按照系统顺序,可在代码页面查看 |
2.3 | sheets("工作表名") | 按照工作表名 |
2.4 | ActiveSheet | 活动工作表 |
3.1 | Range("单元格地址") | 一个或者多个单元格,可以是行、列和区域 |
3.2 | Cells(行号, 列号) | 一个单元格,如果不是指当前工作表,前面加上特定工作表名称,例如Sheets(1),Cells(1,1) |
3.3 | [A1] | 单元格简写 |
3.4 | ActiveCell | 活动单元格 |
1.3 属性
1.3.1 什么是属性
属性是一个对象的特征,比如工作簿的路径、工作表的名称、单元格的值和格式
1.3.2 常用属性
表达方式:对象.属性 或者 父对象.子对象.属性
操作 | 含义 |
ThisWorkBook.Path | 找到当前工作簿的路径 |
ActiveWorkbook.Worksheets.Count | 统计活动工作簿中工作表个数 |
ActiveSheet.Name | 重命名活动工作表的名字 |
Range("A1").Value | A1单元格的值 |
Range("A1").Interior.ColorIndex | A1单元格的颜色 |
ActiveCell.Address | 活动单元格的位置,Address后面加上(0, 0)输出不带$的单元格 |
1.4 方法
1.4.1 什么是方法
方法是对象能执行的动作
1.4.2 常用方法
操作 | 含义 |
WorkBooks.Add | 新建工作簿 |
WorkBooks.Open("路径") | 打开工作簿 |
ActiveWorkBooks.Close | 关闭活动工作簿 |
WorkSheets.Add | 新建工作表 |
Range("b1").Activate | 把b1作为活动单元格 |
Range("a1").Copy [b1] | 把a1复制到b1 |
Range("a1").Copy : Range("b1").PasteSpecial xlPasteValues | 把a1的值只粘贴数值到b1 |
Range("b1").Delete | 删除b1,其他单元格往上移 |
Range("b1").Clear | 清除b1单元格内容以及格式 |
Range("b1").ClearConent | 清除b1的内容 |
1.5 变量声明
1.5.1 声明方法
声明方法 | 变量类型 | 声明位置 | 作用范围 |
Dim 变量名 as 数据类型 | 局部变量 | 本过程中 | 本过程 |
Dim 变量名 as 数据类型 | 局部变量 | 模块,例如过程之外的顶部位置 | 本模块 |
Private 变量名 as 数据类型 | 局部变量 | 只能在本过程之外单独声明 | 本模块 |
Public 变量名 as 数据类型 | 全局变量 | 模块 | 全部模块,任何过程都可以访问 和修改全局变量的值 |
Static 变量名 as 数据类型 | 静态变量 | 本过程中 | 本过程中,并保持上次运行的值 |
声明可以简写,例如:Dim n as integer 可以简写为 Dim n%
1.5.2 数组声明
静态数组:Dim arr或者Dim arr(3)
- 3表示数组arr的大小
- 从0开始计数,也就是可以包含4个元素
动态数组:Dim arr()
- () 表示数组维度为空,需要在声明之后用ReDim 语句调整数组的大小才能使用
- 如果要改变数组的大小,但保留原数组中的数据,则用ReDim Preserve
1.5.3 声明错误可能导致的报错
提示错误13 类型不匹配问题——>可能数组定义不正确,注意动态数组还是静态数组
ByRef参数类型不符——>可能是没有dim变量为string
查看变量数据类型:Msgbox TypeName(变量名称)