第1章 轻轻松松接触VBA 1
1.1 使用VBA的益处和范围 2
1.2 在Excel 2000中记录VBA程序:宏 2
1.2.1 首次尝试记录VBA程序 3
1.2.2 VBA程序逐项解释 6
1.2.3 利用Visual Basic编辑器亲自编辑VBA程序 8
1.3 如何执行VBA程序 11
1.3.1 利用菜单启动VBA程序 11
1.3.2 在Visual Basic编辑器中运行VBA程序 12
1.3.3 利用快捷键启动VBA程序 15
1.3.4 直接由工作表上的按钮或图形控件运行VBA程序 16
1.3.5 由图形对象启动VBA程序 21
1.3.6 由工具栏按钮运行VBA程序 22
1.3.7 由菜单项命令运行VBA程序 25
1.4 宏病毒和数字签名 26
1.4.1 宏病毒 26
1.4.2 数字签名 28
1.5 在工作表之间进行数据复制 31
1.5.1 录制一个在工作表之间复制数据的宏 31
1.5.2 分析已录制完成的宏 32
1.5.3 编辑已录制的宏 33
1.5.4 宏的集成 34
第2章 使用Excel 2000内置函数 37
2.1 使用Excel 2000内置函数的益处和范围 38
2.2 如何在VBA程序中使用内置函数 39
2.3 数学函数 41
2.3.2 FACT工作表函数 42
2.3.1 INT工作表函数 42
2.3.3 PI工作表函数 43
2.3.4 POWER工作表函数 44
2.3.5 SQRT工作表函数 44
2.3.6 RAND和RANDBETWEEN工作表函数 44
2.3.7 COUNT和COUNTIF工作表函数 45
2.3.8 SUM和SUMIF工作表函数 47
2.3.9 SUBTOTAL工作表函数 50
2.4 字符串函数 51
2.4.1 CHAR和CODE工作表函数 52
2.4.2 LEFT和RIGHT工作表函数 53
2.4.3 LEN工作表函数 53
2.4.4 LOWER、UPPER和PROPER工作表函数 54
2.4.5 SEARCH 和FIND工作表函数 55
2.4.6 TRIM和CLEAN工作表函数 56
2.4.7 VALUE工作表函数 57
2.5 日期和时间函数 58
2.5.1 DATE工作表函数 59
2.5.2 TIME工作表函数 59
2.5.3 TODAY工作表函数 60
2.5.4 WEEKDAY工作表函数 61
2.5.5 YEAR、MONTH和DAY工作表函数 62
2.5.6 HOUR、MINUTE和SECOND工作表函数 62
2.6 转换函数 64
2.6.1 BIN2DEC工作表函数 64
2.6.2 BIN2HEX工作表函数 64
2.6.3 BIN2OCT工作表函数 64
2.6.4 HEX2DEC工作表函数 65
2.6.6 HEX2OCT工作表函数 66
2.6.5 HEX2BIN工作表函数 66
2.6.7 OCT2DEC工作表函数 67
2.6.8 OCT2BIN工作表函数 67
2.6.9 OCT2HEX工作表函数 68
2.6.10 DEC2BIN工作表函数 69
2.6.11 DEC2OCT工作表函数 69
2.6.12 DEC2HEX工作表函数 69
2.6.13 CONVERT工作表函数 71
2.7 数据的快速排序 73
2.7.1 SORT方法 73
2.7.2 在工作表中使用SORT方法 75
2.7.3 在VBA语句中使用SORT方法 77
第3章 灵活使用VBA中的子过程 79
3.1 使用子过程的益处和范围 80
3.2 子过程的基本概念 81
3.2.1 子过程的声明 81
3.2.2 子过程的类型 85
3.3 VBA中的模块和工程 87
3.3.1 VBA中的模块 87
3.3.2 VBA中的工程 89
3.3.3 Visual Basic编辑器工程资源管理器的使用 91
3.4 子过程的使用 94
3.4.1 调用同一模块内的子过程 95
3.4.2 调用同一工作簿内的子过程 96
3.4.3 调用不同工作簿中的子过程 99
3.4.4 避免模块外的子过程调用 103
3.5 子过程的参数传递 106
3.5.1 声明子过程的参数 106
3.5.2 将数值作为参数进行传递 107
3.5.3 将地址作为参数传递 112
3.5.4 使用可选参数 114
3.5.5 使用数量不确定的参数 116
3.6 对选定区域分类汇总 118
3.6.1 Subtotal方法 118
3.6.2 在工作表中使用Subtotal方法 119
3.6.3 在VBA程序中使用Subtotal方法 120
第4章 使用函数丰富VBA程序设计 123
4.1 使用函数的益处和范围 124
4.2 函数的使用 125
4.2.1 在子过程中使用函数 126
4.2.2 在工作表中直接使用函数 127
4.3 向函数传递数据 129
4.4 对公司1999年销售数据进行透视表操作 131
4.4.1 “创建数据透视表”宏的录制 132
4.4.2 如何用VBA语句创建数据透视表 135
4.4.3 利用函数获取数据透视表数据 137
第5章 处理程序中工作簿和工作表 139
5.1 用VBA程序处理工作簿和工作表的益处 140
5.2 创建新工作簿 141
5.3 打开一个工作簿 144
5.4 激活一个工作簿 147
5.5 保存和关闭一个工作簿 149
5.6 工作表的新建和删除 153
5.7 工作表的引用与激活 153
5.7.1 利用编号引用工作表 153
5.7.2 利用名称引用工作表 153
5.8 将工作薄文档保存为Web页 156
5.8.1 使用SaveAs方法将工作簿另存为Web页 156
5.8.2 设置Web页的默认属性 158
5.8.3 将工作簿内容发布为Web页 160
第6章 处理单元格和单元格区域 165
6.1 在VBA中处理单元格/单元格区域的益处 166
6.2 如何引用单元格和单元格区域 166
6.2.1 使用编号引用单元格区域 167
6.2.2 引用工作表行或列 172
6.2.3 利用快捷记号引用单元格 175
6.2.4 利用名称引用单元格区域 176
6.2.5 利用Range对象引用单元格 181
6.2.6 引用工作表中的所有单元格 182
6.2.7 利用Offset属性引用单元格区域 184
6.2.8 同时引用若干单元格区域 185
6.3 利用循环遍历单元格区域 189
6.4 选定和激活单元格 191
6.5 处理三维区域 194
6.6 处理活动单元格 195
6.7 创建数据透视图 196
第7章 用控件与窗体控制应用程序 201
7.1 用控件与窗体操纵其他应用程序的益处 202
7.2 在工作表中使用ActiveX控件 202
7.2.1 在工作表中添加ActiveX控件 203
7.2.2 设置ActiveX控件的属性 204
7.2.3 初始化控件 208
7.2.4 编写事件过程 210
7.2.5 在代码运行过程中获取控件值 212
7.3.1 Dialog对象和Dialogs对象 214
7.3.2 在VBA中使用Excel 2000内置对话框 214
7.3 使用内置对话框 214
7.4 使用自定义对话框 216
7.4.1 创建用户窗体 216
7.4.2 为用户窗体添加控件 217
7.4.3 设置控件属性 220
7.4.4 初始化控件 222
7.4.5 编写事件过程 223
7.4.6 显示对话框 224
7.4.7 代码运行时使用控件值 226
7.5 在窗体上使用Microsoft Office Web组件 227
7.5.1 在窗体上添加和设置Microsoft Office Web控件 228
7.5.2 为Microsoft Office Web控件编写事件过程 229
7.6 利用OLE程序标识符控制其他应用程序 231
7.6.1 OLE程序标识符 231
7.6.2 用于链接或嵌入OLE对象的AddOLEObject方法 232
7.6.3 OLE 对象的方法 233
7.6.4 链接和嵌入OLE对象的使用 235
7.7 利用OLE自动化控制其他应用程序 237
第8章 在VBA程序中运用ADO技术 241
8.1 在VBA程序中运用ADO技术的益处 242
8.2 打开连接 242
8.3 创建命令 247
8.4 执行命令 249
8.5 操作数据 250
8.6 数据更新及更新冲突的处理 251
8.7 从公司1998年销售情况数据库中检索并修改数据 252
附录A VBA的数据类型和运算符 256
A.1 VBA程序框架和主要组成部分 257
A.2 VBA中的变量定义 258
A.2.1 Boolean数据类型 259
A.2.2 Byte数据类型 260
A.2.3 Currency数据类型 260
A.2.4 Date数据类型 260
A.2.5 Decimal数据类型 260
A.2.6 Double数据类型 260
A.2.7 Integer数据类型 261
A.2.8 Long数据类型 261
A.2.9 Object数据类型 261
A.2.10 Single数据类型 261
A.2.11 String数据类型 261
A.2.12 用户自定义数据类型 262
A.2.13 Variant数据类型 262
A.3 算术运算符 265
A.3.1 “+”运算符 265
A.3.2 “-”运算符 266
A.3.3 “*”运算符 267
A.3.4 “/”运算符 267
A.3.5 “\”运算符 267
A.3.6 “^”运算符 267
A.3.7 “Mod”运算符 268
A.4 比较运算符 268
A.4.1 比较运算符 268
A.4.2 “Is”运算符 270
A.4.3 “Like”运算符 270
A.5 连接运算符 270
A.6 逻辑运算符 271
A.7 运算符的优先级 272
附录B VBA中的控制结构 273
B.1.3 On…GoSub语句 274
B.1.2 GoTo语句 274
B.1 分支语句 274
B.1.1 GoSub…Retum语句 274
B.1.4 On…GoTo语句 275
B.2 判断语句 275
B.2.1 If…Then…Else语句 275
B.2.2 Select Case语句 276
B.2.3 Choose函数 277
B.2.4 Switch函数 277
B.3 循环语句 278
B.3.1 Do…Loop语句 278
B.3.2 For…Next语句 279
B.3.3 For Each…Next语句 279
B.3.5 With语句 280
B.3.4 While…Wend语句 280
B.4 用于退出或暂停程序的语句 281
B.4.1 DoEvents函数 281
B.4.2 End语句 281
B.4.3 Exit语句 282
B.4.4 Stop语句 283
附录C 认识VBA中的对象和方法 284
C.1 什么是对象和集合 285
C.2 事件的含义与用法 285
C.3 属性和方法的含义和用法 286
C.4 Excel 2000对象一览 287
C.5 Excel 2000属件一览 291
C.6 Excel 2000属性一览 292
C.7 Excel 2000方法一览 295