第1章 奇境的入口——从VBE走进VBA编程世界 1
1.1在哪里写代码——VBE与模块 2
1.1.1找到VBA编辑器 2
1.1.2在正确的位置编写代码 4
1.2见微知著——从一个简单例子观察VBA程序的结构 7
1.2.1 Sub /End Sub——程序的起始与结束 8
1.2.2词汇与语句——程序语言的基本要素 9
1.3 Cells与运算符——用VBA控制Excel单元格 10
1.3.1 Cells——代码与表格之间的第一个桥梁 11
1.3.2赋值操作——等号的主要用途 12
1.3.3加、减、乘、除——基本的算术运算符 12
1.4 VBA程序的运行与保存——按钮、XLSM文件及宏安全性 13
1.4.1宏与宏安全性 14
1.4.2运行VBA程序的常用方法 14
1.4.3 XLSM文件——VBA程序的藏身之所 17
本章小结 18
第2章 程序的记忆——变量与常量 19
2.1变量的作用与含义 19
2.1.1为什么需要使用变量 19
2.1.2什么是变量 21
2.1.3再问一次:什么是变量 22
2.1.4前后对比——使用变量的好处 23
2.2没有规矩不成方圆——有关变量的最佳实践 24
2.2.1变量的命名 24
2.2.2强制声明 28
2.2.3把重复数据都抽取为变量 31
2.3常量——那些重复却不变的内容 32
本章小结 35
第3章 力量的源泉——循环结构 36
3.1循环结构概述 37
3.2 For …Next循环语句 38
3.2.1 For …Next循环语句的基本语法 38
3.2.2 For …Next循环的典型用法 40
3.2.3 Step子句 42
3.2.4 For …Next循环的“初学者陷阱” 45
3.3用循环实现汇总——累加器与计数器 48
3.4缩进与注释——提高代码的可读性 50
3.4.1代码缩进 50
3.4.2代码注释 52
本章小结 53
第4章 智能的产生——判断结构 54
4.1If语句与关系运算 55
4.1.1用If语句实现判断结构 55
4.1.2用关系运算比较大小 57
4.1.3用Else和ElseIf实现多分支判断 57
4.2嵌套结构——多层If语句的使用 67
4.3逻辑表达式——怎样表示“与”“或”“非” 71
4.3.1逻辑表达式 71
4.3.2常见逻辑运算符的使用方法 71
4.4 Select …Case结构 79
4.4.1 Select …Case结构的基本用法 79
4.4.2在Case语句中表示复杂条件 80
本章小结 81
第5章 文字的表述——字符串基础 83
5.1字符串的基本概念与格式 84
5.1.1什么是字符串 84
5.1.2区分字符串与变量 86
5.1.3在字符串中表示特殊符号 86
5.2字符串的理解要点 89
5.2.1空字符串 89
5.2.2非打印字符(空白字符) 90
5.2.3区分大小写字符 91
5.2.4区分数字与字符串 91
5.3字符串连接操作 92
5.3.1字符串连接符——“+”与“&” 92
5.3.2灵活构造字符串 93
本章小结 96
第6章 诊断的技巧——程序调试 97
6.1程序错误的类型与排查 97
6.1.1编译错误 98
6.1.2运行时错误 99
6.1.3逻辑错误 100
6.2使用断点与监视 101
6.2.1“望闻”之术——设置断点 101
6.2.2“问”的技巧——添加监视 102
6.2.3“切”脉秘籍——让程序单步执行 104
6.3代码“无间道”——Debug.Print与立即窗口 109
本章小结 110
第7章 维度的拓展——再谈循环结构 111
7.1多重循环 112
7.1.1双重循环的概念 112
7.1.2初学者常见错误 114
7.1.3更多层次的嵌套循环 119
7.2 While循环 120
7.2.1 Do While循环的基本用法 120
7.2.2 While循环结构的初学者陷阱 123
7.2.3 Do While循环的典型应用 125
7.2.4 While循环的各种形式 129
7.3 Exit语句与Goto语句 131
7.3.1跳出当前结构——Exit语句的使用 131
7.3.2随心所欲难免逾矩——Goto语句及其利弊 133
7.3.3异常处理——On Error Goto语句 134
本章小结 137
第8章 名字的魔力——面向对象与录制宏 138
8.1面向对象——程序员的世界观 139
8.1.1面向过程与面向对象简述 139
8.1.2类、对象、属性、方法 141
8.2从Range看VBA对象的使用方法 143
8.2.1 Range对象概述 143
8.2.2 Range对象的基本用法与技巧 144
8.2.3设置单元格格式——字体、颜色及With结构 150
8.2.4智能提示——使用As关键字声明对象类型 156
8.3 Excel对象体系 157
8.3.1了解所有对象——对象浏览器与MSDN 157
8.3.2最常用的Excel对象 159
8.4打开黑箱看代码——录制宏 160
8.4.1宏的录制过程 160
8.4.2宏代码的解读与运用 162
8.4.3对录制宏代码的初步优化 164
本章小结 165
第9章 能力的释放——批量处理工作表与工作簿 166
9.1个体与集合——再谈Excel常用对象间的关系 167
9.2工作表对象 168
9.2.1为Range对象指定所属工作表 168
9.2.2技巧与陷阱——With与Range 170
9.2.3最佳实践——按名引用工作表 172
9.2.4遍历所有工作表 172
9.2.5多个工作表汇总的常用技巧 175
9.2.6工作表的其他常用操作 180
9.3工作簿对象 183
9.3.1工作簿文件的打开、保存与关闭 183
9.3.2常用技巧——工作簿的拆分与汇总 187
本章小结 191
第10章 结构的艺术——过程、函数与字符串处理 193
10.1子过程与“结构化程序设计” 194
10.1.1子过程基本概念与调用方法 194
10.1.2变量的作用域 198
10.1.3参数的概念 199
10.1.4子过程与参数的更多细节 202
10.2函数与自定义公式 204
10.2.1函数的格式与功能 204
10.2.2将函数作为表格公式 209
10.2.3系统函数 211
10.2.4 Msgbox函数 212
10.3字符串函数 214
10.3.1计算字符串长度 214
10.3.2将字符串规范化 215
10.3.3替换文本 217
10.3.4子串操作 218
10.3.5字符串函数的应用 222
本章小结 223
第11章 万物的源头——Application对象 225
11.1隐藏的Application对象 226
11.1.1Cells的真实来历 226
11.1.2与Cells类似的情况 227
11.2通过WorksheetFunction属性调用公式 229
11.3 Application的其他属性与方法 232
11.3.1常用属性 232
11.3.2常用方法 235
本章小结 236
第12章 细分的好处——VBA数据类型 238
12.1 VBA数据类型概述 239
12.1.1为什么要划分数据类型 239
12.1.2变体类型的功与过 240
12.1.3 VBA中的数据类型概览 243
12.2数字类型 244
12.2.1常用类型:Integer、 Long和Double(符号问题) 244
12.2.2其他类型:Byte、Single、Currency和Decimal 246
12.2.3简写符号 248
12.2.4初学者陷阱:常数有时也要声明类型 248
12.2.5自动类型转换与强制类型转换 250
12.3字符串类型 253
12.3.1字符的本质 253
12.3.2像数字一样处理字符串 255
12.4日期类型 258
12.4.1日期和时间的一般表示 259
12.4.2常用日期函数 259
12.4.3日期类型的本质 265
12.5逻辑类型 266
12.5.1逻辑值与逻辑运算 266
12.5.2逻辑类型的应用 269
12.6对象类型 272
12.7数据类型的检测 273
12.8“无”的各种表示方法——Nothing、 Null与Empty 275
本章小结 275
第13章 集体的名义——VBA中的数组 277
13.1数组的基本概念 278
13.1.1什么是数组 278
13.1.2数组声明中的细节问题 279
13.1.3数组的用途与技巧 281
13.2动态数组 285
13.2.1动态数组与ReDim语句 285
13.2.2使用Split拆分字符串 287
13.3多维数组与表格读写 289
13.3.1什么是二维数组 289
13.3.2二维数组与Range对象 291
13.3.3多维数组的概念 293
本章小结 294
第14章 信息的整合——文件与文件夹操作 295
14.1读写文本文件 296
14.1.1什么是文本文件 296
14.1.2文本文件的打开与读取 296
14.1.3将数据写入文本文件 300
14.2打开文件夹中的所有文件 302
14.2.1 Dir函数的基本用法 302
14.2.2 Dir函数的更多技巧 303
14.3其他文件操作简介 305
本章小结 306
第15章 选择的自由——自定义参数及其他函数技巧 307
15.1可选参数 308
15.1.1 Optional与默认值 308
15.1.2可选参数的省略与按名传递 309
15.1.3判断可选参数是否被使用 311
15.2引用传递与值传递 312
15.3随机数函数的使用 314
15.3.1 Rnd函数的基本用法 314
15.3.2深入了解:“伪”随机数与“种子” 316
本章小结 318
第16章 区域的管理——深入了解Range对象 320
16.1遍历Range内部单元格 321
16.1.1Cells属性 321
16.1.2自定义公式 322
16.1.3 Rows与Columns属性 323
16.2获取Range对象的描述信息 324
16.2.1位置信息 324
16.2.2公式信息 325
16.2.3合并单元格信息 326
16.3重新定位Range对象 329
16.3.1 Offset、Resize与CurrentRegion属性 329
16.3.2 Worksheet对象的Cells与UsedRange属性 333
16.3.3 Application对象的Union与Intersection方法 334
16.4 Find与Sort方法简介 334
16.4.1 Range.Find方法 334
16.4.2 Range.Sort方法 336
本章小结 337
第17章“神经”的连通——编写事件处理程序 339
17.1事件编程基本概念与过程 340
17.1.1事件与事件响应 340
17.1.2事件编程的基本步骤 340
17.2 Excel常用事件 343
17.2.1工作表事件 343
17.2.2工作簿常用事件 347
17.3事件级联 348
17.4访问修饰符与静态变量 350
17.4.1访问修饰符 350
17.4.2静态变量 352
17.4.3静态变量在事件处理中的应用 353
本章小结 355
第18章 界面的革新——设计用户窗体 356
18.1窗体程序开发过程 357
18.1.1窗体与控件 357
18.1.2窗体模块与设计器 357
18.1.3指定属性和外观 359
18.1.4为窗体事件编写代码 361
18.1.5窗体的显示与退出 363
18.2窗体与常用控件的属性、事件和方法 365
18.2.1窗体对象 365
18.2.2标签与文本框 367
18.2.3列表框与组合框 369
18.2.4单选按钮、复选框及框架 372
18.2.5窗体控件综合案例——将数据录入工作表 375
18.3其他常用控件及附加控件 378
18.3.1其他常用控件简介 378
18.3.2附加控件的使用 379
18.4关于窗体与控件的其他要点 383
18.4.1多窗体协同 383
18.4.2多个控件的对齐 383
18.4.3工作表中的ActiveX控件 384
本章小结 385
第19章 工具的升级——集合、字典及正则表达式 386
19.1集合对象 387
19.2字典对象 388
19.2.1使用CreateObject创建外部对象 388
19.2.2字典的概念与应用 390
19.2.3字典的其他常用属性与方法 393
19.3正则表达式入门 394
19.3.1什么是正则表达式 395
19.3.2正则表达式的基本语法 396
19.3.3在VBA中使用正则表达式 410
本章小结 415
第20章 天地的无穷——那些未及细说的主题 416
20.1类模块与自定义类 417
20.2开发小型管理信息系统 418
20.3深入操作Office软件与Windows系统 421
20.4算法的价值 421
结语VBA的未来 423