第1章 Excel宏操作 1
1.1 录制宏 2
1.1.1 什么是宏 2
1.1.2 在Excel 2003中录制宏 2
1.1.3 在Excel 2007中录制宏 4
1.1.4 以相对引用录制宏 5
1.2 查看宏和编辑宏 5
1.2.1 在Excel 2003中打开录制的宏 5
1.2.2 在Excel 2007中打开录制的宏 7
1.2.3 编辑录制的宏 7
1.2.4 以绝对引用录制宏和以相对引用录制宏的不同 10
1.3 运行宏 11
1.3.1 使用快捷键 12
1.3.2 使用对话框 12
1.3.3 在Excel 2003中建立自定义命令按钮运行宏 12
1.3.4 在Excel 2007中建立自定义命令按钮运行宏 14
1.3.5 使用“窗体”工具栏控件(表单控件) 17
1.3.6 使用ActiveX控件 19
1.3.7 使用图形对象 21
1.3.8 使用Visual Basic编辑器 23
1.3.9 在打开工作簿时自动运行 23
1.3.10 在其他程序中调用 24
1.3.11 要运行宏,保存工作簿应注意的问题 24
1.4 设置宏的安全级别 24
1.4.1 在Excel 2003中设置宏的安全级别 24
1.4.2 在Excel 2007中设置宏的安全级别 25
1.5 删除宏、导出文件和导入文件 26
1.5.1 删除宏 26
1.5.2 删除文件 26
1.5.3 导出文件 26
1.5.4 导入文件 27
1.6 打印宏 27
1.6.1 打印整个模块 27
1.6.2 打印部分宏代码 27
1.7 宏录制器的局限性 28
1.8 录制宏练习——录制一个绘制两轴-柱图的宏 28
第2章 Excel VBA基本操作工具 31
2.1 VBE编辑器 32
2.2 VBA菜单 33
2.2.1 “文件”菜单 33
2.2.2 “编辑”菜单 34
2.2.3 “视图”菜单 34
2.2.4 “插入”菜单 34
2.2.5 “格式”菜单 35
2.2.6 “调试”菜单 35
2.2.7 “运行”菜单 36
2.2.8 “工具”菜单 36
2.2.9 “窗口”菜单 36
2.2.10 “帮助”菜单 36
2.3 工具按钮和命令 37
2.3.1 常用工具按钮和命令 37
2.3.2 工具栏 37
2.3.3 控件工具箱 38
2.4 窗口 38
2.4.1 工程资源管理器窗口 38
2.4.2 代码窗口 39
2.4.3 属性窗口 41
2.4.4 对象浏览器窗口 42
2.4.5 立即窗口 44
2.4.6 本地窗口 45
2.4.7 监视窗口 46
2.5 自定义工作环境 46
2.5.1 编辑器环境设置 47
2.5.2 编辑器格式环境设置 48
2.5.3 通用环境设置 49
2.5.4 可连接的环境设置 50
2.6 Excel VBA中常用的快捷键 50
第3章 ExcelVBA语法基础 53
3.1 常量 54
3.1.1 数值常量 54
3.1.2 字符及字符串常量 54
3.1.3 符号常量 54
3.1.4 逻辑常量 54
3.1.5 日期常量 54
3.1.6 内置常量 55
3.1.7 如何获得VBA内置常量信息 60
3.1.8 VBA内置常量应用举例 60
3.2 变量 62
3.2.1 变量名命名规则 62
3.2.2 变量的数据类型 62
3.2.3 变量的说明 63
3.2.4 强制声明变量 66
3.2.5 声明和使用模块级变量 67
3.2.6 声明和使用公共变量 67
3.2.7 声明和使用对象变量 67
3.2.8 声明和使用变量的几点提示 68
3.3 数组 68
3.3.1 数组声明 69
3.3.2 静态数组和动态数组 69
3.3.3 将数组的缺省下界设置为1 71
3.3.4 定义下标可选的数组 71
3.3.5 有用的数组函数 71
3.4 运算符和表达式 73
3.4.1 运算符 73
3.4.2 表达式及运算符的优先顺序 76
3.5 语句基本知识 77
3.5.1 声明语句 77
3.5.2 普通变量的赋值语句 77
3.5.3 对象变量的赋值语句 77
3.5.4 可执行语句 78
3.6 语句书写技巧 78
3.6.1 将数个语句写在一行上 78
3.6.2 将一个语句连续地写在数行上 79
3.6.3 添加注释 79
3.7 提高程序运行效率的几点建议 79
3.7.1 尽量使用VBA原有的属性、方法和工作表函数 79
3.7.2 尽量减少对象引用 80
3.7.3 减少对象的激活和选择 81
3.7.4 关闭屏幕更新 82
第4章 条件控制语句 85
4.1 条件语句 86
4.1.1 If...Then条件语句 86
4.1.2 多个条件的If...Then条件语句 87
4.1.3 If...Then...Else条件语句 89
4.1.4 If...Then...ElseIf...Then语句 90
4.1.5 嵌套的If...Then语句 91
4.1.6 如何判断当前单元格为空白单元格 92
4.2 分情况选择语句 93
4.2.1 Select Case语句的结构形式 93
4.2.2 具体数据的Select Case语句 94
4.2.3 连续数值范围的Select Case语句 94
4.2.4 使用Is的Select Case语句 95
4.2.5 在Case子句里确定多个表达式 95
4.3 嵌套语句 96
4.4 跳转语句 96
4.4.1 GoTo语句 97
4.4.2 On...GoTo语句 98
4.4.3 On...GoSub语句 98
4.4.4 GoSub...Retum语句 99
4.4.5 On Error语句 100
第5章 循环结构语句 103
5.1 For...Next循环结构 104
5.1.1 For...Next循环结构的形式 104
5.1.2 退出For...Next循环结构 107
5.2 Do...Loop循环结构 107
5.2.1 Do...Loop循环结构的形式 107
5.2.2 退出Do...Loop循环结构 109
5.3 For Each...Next循环结构 109
5.3.1 For Each...Next循环结构的形式 109
5.3.2 For Each...Next循环结构应用举例 109
5.3.3 退出For Each...Next循环结构 111
5.4 While...Wend循环结构 111
5.5 With...End With语句 112
第6章 函数的使用 115
6.1 获取Excel VBA函数信息 116
6.1.1 快速获取Excel VBA函数信息 116
6.1.2 按类别目录获取ExcelVBA函数信息 116
6.1.3 在程序中快速获取Excel VBA函数信息 117
6.2 Excel VBA函数语法 118
6.3 数学函数 118
6.3.1 常用数学函数 118
6.3.2 数学函数应用案例 118
6.4 日期与时间函数 119
6.4.1 日期与时间函数介绍 119
6.4.2 日期与时间函数应用案例 121
6.5 字符串处理函数 124
6.5.1 字符串处理函数介绍 124
6.5.2 字符串处理函数应用案例 125
6.6 强制转换函数 127
6.7 财务函数 127
6.7.1 财务函数介绍 127
6.7.2 财务函数应用案例 129
6.8 检查函数 130
6.8.1 常用的检查函数介绍 130
6.8.2 检查函数应用案例 130
6.9 数组函数 131
6.9.1 Array函数 131
6.9.2 UBound函数和LBound函数 131
6.10 几个重要的函数 132
6.10.1 判断函数——IIf函数 132
6.10.2 重要的格式函数——Fornat函数 132
6.10.3 Choose函数和Switch函数 133
6.11 输入和输出函数 134
6.11.1 输入函数(InputBox) 134
6.11.2 InputBox方法 135
6.11.3 输出函数(MsgBox) 136
6.12 Excel工作簿函数的使用 138
6.12.1 利用Application对象来调用Excel工作簿函数 138
6.12.2 利用字符串处理的方法来调用Excel工作表函数 139
6.12.3 可在VBA中使用的Excel工作簿函数 139
6.12.4 如何在VBA中使用全部的Excel工作簿函数 141
第7章 过程与自定义函数的设计 143
7.1 子程序 144
7.1.1 子程序的结构 144
7.1.2 子程序的类型 144
7.1.3 子程序的编写 145
7.1.4 调用子程序的基本方法 147
7.1.5 调用标准模块中的子程序 147
7.1.6 调用窗体对象模块中的子程序 148
7.1.7 调用工作表对象中的子程序 148
7.1.8 调用工作簿对象中的子程序 148
7.1.9 使用可选参数的子程序 148
7.1.10 使用可选参数默认值的子程序 149
7.1.11 使用不定数量参数的子程序 149
7.2 自定义函数 150
7.2.1 自定义函数的结构 150
7.2.2 自定义函数的编写与保存 150
7.2.3 自定义函数的调用 151
7.2.4 为自定义函数添加帮助信息 152
7.2.5 指定自定义函数的类别 154
7.2.6 如何传递自定义函数的参数值 155
7.2.7 如何为自定义函数设置可选参数和默认值 156
7.2.8 返回数组的自定义函数 157
7.2.9 接受不确定参数的自定义函数 158
7.2.10 接受数组的自定义函数 158
7.2.11 调试自定义函数 158
7.2.12 自定义函数的限制 159
7.3 变量和过程的作用域 159
7.3.1 变量的作用域 159
7.3.2 过程的作用域 160
7.4 退出过程 162
7.4.1 退出子程序 162
7.4.2 退出自定义函数 163
7.5 一些实用的子程序 163
7.5.1 保护所有的工作表 163
7.5.2 取消对所有工作表的保护 163
7.5.3 保护并隐藏指定工作表中的所有计算公式 163
7.5.4 隐藏除第一个工作表外的所有工作表 164
7.5.5 彻底隐藏指定的工作表 164
7.5.6 取消对所有工作表的隐藏 164
7.5.7 根据单元格数据设置字体颜色 164
7.5.8 一次性地删除工作表中所有的超链接 165
7.5.9 一次性地删除工作表中所有的图形对象 165
7.5.10 限制工作表单元格区域的滚动 166
7.5.11 删除数据区域内的空行 166
7.5.12 删除数据区域内的空列 166
7.5.13 每隔N行插入1个空行 166
7.6 一些实用的自定义函数 167
7.6.1 获取活动工作簿的名称和文件路径 167
7.6.2 获取活动工作表的名称 167
7.6.3 判断工作簿是否打开 167
7.6.4 判断工作表是否存在 168
7.6.5 查询工作簿上次保存的日期和时间 169
7.6.6 根据单元格内部颜色对单元格求和 169
7.6.7 根据单元格字体内部颜色对单元格求和 170
7.6.8 查询单元格内部颜色的名称或索引号 170
7.6.9 查询单元格字体颜色的名称或索引号 171
7.6.10 从混合文本中查找数字 172
7.6.11 返回单元格地址的列字母 173
7.6.12 查找含有特定文本字符串的单元格 173
7.6.13 对可见的数据行单元格求和 174
7.6.14 对隐藏的数据行单元格求和 175
7.6.15 判断单元格是否有普通公式 175
7.6.16 判断单元格是否有数组公式 176
7.6.17 判断单元格是否设置有条件格式 177
7.6.18 判断单元格是否设置有数据有效性 177
7.6.19 判断单元格是否引用了其他工作表数据 179
7.6.20 判断单元格是否引用了外部工作簿数据 179
7.6.21 判断单元格是否定义了名称 180
7.6.22 取得汉字拼音的第一个字母 181
7.6.23 计算个人薪金所得税 182
7.6.24 根据税后工资反算税前工资 183
7.6.25 将阿拉伯数字转换为大写的中文数字 184
7.6.26 将时间转换为小数格式 185
第8章 VBA的对象、属性、方法和事件 187
8.1 对象、方法、属性和事件概述 188
8.1.1 对象和对象集合 188
8.1.2 属性 188
8.1.3 方法 189
8.1.4 事件 189
8.1.5 引用对象 190
8.2 Excel中最常用的对象 190
8.2.1 Application对象 191
8.2.2 Workbook对象 192
8.2.3 Worksheet对象 193
8.2.4 Range对象或Range集合 193
8.2.5 Chart对象 194
8.3 VBA常用对象的集合 195
8.3.1 Workbooks集合 195
8.3.2 Worksheets集合 195
8.3.3 Sheets集合 195
8.3.4 Range集合 196
8.3.5 Names集合对象 196
8.3.6 Dialogs集合对象 196
8.3.7 Styles集合 196
8.3.8 Borders集合 196
8.3.9 Charts集合 197
8.4 Excel 2007新增的集合和对象 197
第9章 操作Excel应用程序 199
9.1 Application对象的常用属性及应用 200
9.1.1 ActiveCell属性——引用活动窗口的活动单元格 200
9.1.2 ActiveSheet属性——引用活动工作表 200
9.1.3 ActiveWorkbook属性——引用活动工作簿 201
9.1.4 ActiveWindow属性——引用活动窗口 201
9.1.5 RangeSelection属性——引用选定单元格区域 201
9.1.6 Selection属性——引用在活动窗口中选定的对象 201
9.1.7 ThisWorkbook属性——引用VBA代码正在运行的工作簿 201
9.1.8 ScreenUpdating属性——开/关屏幕更新 202
9.1.9 Caption属性——改变Excel标题栏上的标题 202
9.1.10 DisplayAlerts属性——控制显示警告信息 203
9.1.11 DisplayStatusBar属性——控制显示状态栏 203
9.1.12 DisplayFormulaBar属性——控制显示公式编辑栏 203
9.1.13 DisplayScrollBars属性——控制显示滚动条 203
9.1.14 Dialogs属性——打开内部对话框 203
9.1.15 Cursor属性——设置鼠标指针形状 204
9.1.16 UserName属性——返回或设置当前用户名称 204
9.1.17 WorksheetFunction属性——使用工作簿函数 204
9.1.18 StatusBar属性——在状态栏显示文字信息 205
9.1.19 FileSearch属性——查找文件 205
9.1.20 DisplayFullScreen属性——全屏显示 206
9.1.21 Visible属性——显示/隐藏Excel应用程序 206
9.1.22 SheetsInNewWorkbook属性——设置新工作簿的工作表数目 206
9.1.23 AutoRecover属性——设置保存自动恢复文件的时间间隔 206
9.1.24 DefaultFilePath属性——设置打开文件时的默认路径 207
9.1.25 AskToUpdateLinks属性——设置打开文件时是否更新链接 207
9.1.26 Speech属性——在Excel中进行朗读 207
9.1.27 Windows属性——设置所有工作簿中的所有窗口 207
9.2 Application对象的常用方法及应用 207
9.2.1 ActivateMicrosoftApp方法——打开一个Microsoft应用程序 207
9.2.2 Calculate方法——重新计算工作簿、工作表或单元格区域 208
9.2.3 CalculateFull方法——完整计算所有打开工作簿 208
9.2.4 FindFile方法——显示“打开”对话框 208
9.2.5 GetOpenFilename方法——显示标准的“打开”对话框 209
9.2.6 Goto方法——选定任意工作簿中的任意区域 210
9.2.7 InputBox方法——显示输入对话框 210
9.2.8 OnTime方法——在指定的时间执行宏 210
9.2.9 Quit方法——关闭Excel 211
9.2.10 Wait方法——暂停运行宏 211
9.2.11 Intersect方法——获取多个单元格区域的重叠区域 212
9.2.12 Union方法——获取多个单元格区域的重叠区域 212
9.2.13 Volatile方法——控制函数重新计算 212
9.3 关于Excel 2007新增的Application对象 212
9.3.1 AlwaysUseClearType属性——使用ClearType字体 213
9.3.2 DisplayFormulaAutoComplete属性——显示函数名称列表 213
9.3.3 FormulaBarHeight属性——设置编辑栏高度 213
9.3.4 MeasurementUnit属性——设置度量单位 213
9.3.5 MultiThreadedCalculation属性——设置多线程重新计算 213
9.3.6 ShowDevTools属性——设置显示“开发工具”选项卡 214
9.3.7 ShowSelectionFloaties属性——设置显示浮动工具栏 214
9.4 利用Application对象的事件控制Excel 214
9.4.1 Application对象事件 214
9.4.2 如何为Application对象编写事件程序 215
9.4.3 Application对象事件应用举例——控制打印任何工作簿 215
9.5 Application对象使用的补充说明 216
第10章 操作工作簿 217
10.1 引用工作簿对象 218
10.1.1 通过索引序号引用工作簿 218
10.1.2 通过名称引用工作簿 218
10.1.3 引用活动工作簿 218
10.1.4 引用VBA代码正在运行的工作簿 219
10.1.5 引用新建的工作簿 219
10.2 Workbooks集合的常用属性、方法及应用 219
10.2.1 Count属性——获取打开工作簿的数量 219
10.2.2 Add方法——创建工作簿 220
10.2.3 Open方法——打开工作簿 220
10.2.4 Close方法——关闭工作簿 221
10.2.5 Workbooks集合属性和方法的综合应用 221
10.3 Workbook对象的常用属性、方法及应用 221
10.3.1 ActiveSheet属性 222
10.3.2 Worksheets属性 222
10.3.3 Name属性——获取工作簿名称 222
10.3.4 FullName属性——获取工作簿的包括完整路径的名称 222
10.3.5 Path属性——获取工作簿的完整路径 223
10.3.6 Password属性——获取或设置工作簿保护密码 223
10.3.7 HasPassword属性——检查工作簿是否有密码保护 223
10.3.8 Saved属性——检查工作簿是否发生过更改 224
10.3.9 ActiveChart属性 224
10.3.10 Charts属性 224
10.3.11 BuiltinDocumentProperties属性——获取工作簿属性信息 224
10.4 Workbook对象的常用方法及应用 226
10.4.1 Activate方法——激活工作簿 226
10.4.2 Close方法——关闭工作簿 226
10.4.3 SaveAs方法——修改当前工作簿名称 227
10.4.4 Save方法——保存当前工作簿 227
10.4.5 SaveCopyAs方法——保存工作簿副本 227
10.4.6 Protect方法——保护工作簿 228
10.4.7 Unprotect方法——解除保护工作簿 228
10.4.8 RunAutoMacros方法——运行自动宏 228
10.4.9 NewWindow方法——为工作簿新建一个窗口 229
10.5 工作簿对象的事件编程 230
10.5.1 为工作簿对象指定事件的方法 230
10.5.2 Open事件编程 232
10.5.3 BeforeClose事件编程 233
10.5.4 BeforeSave事件编程 233
10.5.5 Activate事件编程 233
10.5.6 Deactivate事件编程 234
10.5.7 SheetBeforeRightClick事件编程 234
10.5.8 BeforePrint事件编程 235
10.6 关于Excel 2007新增的Workbook对象的属性和方法 236
10.6.1 CheckCompatibility属性 236
10.6.2 DefaultPivotTableStyle属性 236
10.6.3 DefaultTableStyle属性 236
10.6.4 ForceFullCalculation属性 236
10.6.5 IconSets属性 236
10.6.6 ExportAsFixedFormat方法 236
第11章 操作工作表 237
11.1 引用工作表 238
11.1.1 通过某工作表在Worksheets集合中的位置引用工作簿 238
11.1.2 通过工作表名称引用工作表 238
11.1.3 通过Sheets集合引用工作表 238
11.1.4 引用当前活动工作簿中的活动工作表 238
11.1.5 引用新建的工作表 239
11.1.6 引用特定的工作表 239
11.2 Worksheets集合的常用属性和方法 240
11.2.1 Count属性——获取工作簿中工作表的数量 240
11.2.2 Add方法——新建工作表 240
11.3 Worksheet对象的常用属性及应用 241
11.3.1 Index属性——获取工作表的索引号 241
11.3.2 Cells属性——选择整个工作表 241
11.3.3 Columns属性和Rows属性——选择列和行 242
11.3.4 Range属性——选择单元格 242
11.3.5 UsedRange属性——选择已使用区域 242
11.3.6 Name属性——获取或重命名工作表名称 243
11.3.7 Next属性——下一个工作表 243
11.3.8 Previous属性——上一个工作表 243
11.3.9 ScrollArea属性——设置滚动区域 244
11.3.10 Type属性——判断工作表类型 244
11.3.11 Visible属性——显示/隐藏工作表 244
11.3.12 StandardHeight属性——工作表的标准行高 245
11.3.13 StandardWidth属性——工作表的标准列宽 245
11.4 Worksheet对象的常用方法及应用 245
11.4.1 Activate方法——激活工作表 246
11.4.2 Delete方法——删除工作表 246
11.4.3 Copy方法——复制工作表 247
11.4.4 Move方法——移动工作表 247
11.4.5 FillAcrossSheets方法——填充相同区域 247
11.4.6 Select方法——选择工作表 247
11.4.7 Protect方法——保护工作表 248
11.4.8 Unprotect方法——撤销保护工作表 248
11.4.9 Calculate方法 248
11.4.10 PrintPreview方法 248
11.4.11 PrintOut方法 249
11.4.12 SetBackgroundPicture方法 249
11.5 工作表对象的事件编程 249
11.5.1 为工作表对象指定事件的方法 249
11.5.2 Activate事件 251
11.5.3 Deactivate事件 251
11.5.4 Change事件 252
11.5.5 SelectionChange事件 253
11.5.6 BeforeDoubleClick事件 254
11.5.7 BeforeRightClick事件 254
11.5.8 Calculate事件 255
11.5.9 工作表对象事件的综合应用 255
11.6 关于Excel 2007新增的Worksheet对象的属性和方法 256
11.6.1 EnableFormatConditionsCalculation属性 256
11.6.2 Sort属性 256
11.6.3 ExportAsFixedFormat方法 257
11.7 关于Excel工作表对象的一些说明 257
11.7.1 Sheets集合与Worksheets集合的区别 257
11.7.2 Activate方法与Select方法的区别 257
11.7.3 关于工作表名称和工作表对象名称的区别 258
第12章 处理单元格 259
12.1 如何获得或返回Range对象 260
12.1.1 使用Range属性引用单元格 260
12.1.2 引用单元格的快捷方式 261
12.1.3 使用Cells属性引用单元格 261
12.1.4 联合使用Range属性和Cells属性引用单元格区域 261
12.1.5 使用Offset属性动态地引用单元格 262
12.1.6 使用Rows属性和Columns属性引用行和列 263
12.1.7 使用Union方法组合多个单元格区域 264
12.1.8 使用Intersect方法引用交叉区域 264
12.1.9 使用CurrentRegion属性快速选择单元格区域 265
12.1.10 使用UsedRange属性选择使用区域 266
12.1.11 使用SpecialCells方法引用特定的单元格 266
12.1.12 使用Areas属性引用一个非连续区域 268
12.1.13 使用Resize属性更改区域范围 268
12.1.14 使用IsEmpty函数检查单元格是否空白 269
12.1.15 引用其他工作表中的区域 270
12.2 Range对象的常用属性及应用 271
12.2.1 Address属性——获取单元格的地址 271
12.2.2 Border属性——返回或设置单元格边框 271
12.2.3 Column属性和Row属性——返回或设置列号和行号数字 272
12.2.4 ColumnWidth和RowHeight属性——返回或设置列宽和行高 273
12.2.5 End属性——获取数据区域的边界行和列 274
12.2.6 Font属性——设置字体格式 274
12.2.7 Formula属性——向单元格输入公式 275
12.2.8 FormulaArray属性——向单元格输入数组公式 275
12.2.9 HasFormula属性——判断单元格是否有公式 275
12.2.10 FormulaArray属性——判断单元格是否有数组公式 275
12.2.11 Hidden属性——隐藏行或列 276
12.2.12 HorizontalAlignment属性——设置水平对齐方式 276
12.2.13 VerticalAlignment属性——设置垂直对齐方式 276
12.2.14 Interior属性——设置单元格内部颜色 276
12.2.15 Locked属性——锁定单元格 277
12.2.16 FormulaHidden属性——隐藏单元格公式 277
12.2.17 Name属性——为单元格命名或获取单元格名称 277
12.2.18 NumberFornat和NumberFormatLocal属性——设置单元格数据格式 277
12.2.19 Value属性——为设置赋值或获取单元格数据 278
12.3 Range对象的常用方法及应用 278
12.3.1 Activate方法——激活单元格 278
12.3.2 Autofit方法——将单元格区域中的列宽和行高调整为最适当的值 278
12.3.3 Clear、ClearComments、ClearContents和ClearFormats方法 279
12.3.4 Copy方法——复制单元格 279
12.3.5 Cut方法——剪切单元格 279
12.3.6 Delete方法——删除单元格、行和列 280
12.3.7 Insert方法——插入单元格、行和列 280
12.3.8 Justify方法——调整单元格的文字 281
12.3.9 Merge方法和UnMerge方法——合并和取消合并单元格 281
12.3.10 Select方法——选择单元格 281
12.4 Range对象的几个简单应用实例 281
12.4.1 处理含有公式的单元格 282
12.4.2 给单元格命名 283
12.4.3 处理特殊格式的单元格 283
12.4.4 单元格颜色联动变化 284
12.4.5 删除具有特定字符的行或列 284
12.4.6 删除工作表中的重复内容 284
12.4.7 筛选工作表中不重复的内容 285
12.4.8 选择或识别各种类型的单元格 286
12.4.9 删除所有的空行和空列 286
12.4.10 批量处理数字单元格 287
12.4.11 选择具有某种特殊格式的单元格 287
12.4.12 制作工资条 288
12.5 Font对象的常用属性及其应用 290
12.5.1 设置字体名称 290
12.5.2 设置字号 290
12.5.3 设置字体颜色 290
12.5.4 设置字体是否加粗 290
12.5.5 设置字体是否为斜体 290
12.5.6 设置字体是否带有阴影 291
12.5.7 设置文字中间是否有一条水平删除线 291
12.5.8 设置字体的下画线类型 291
12.5.9 设置字体的上下标 291
12.5.10 设置字体的样式 291
12.6 Interior对象的常用属性及其应用 292
12.6.1 设置单元格内部的主要颜色 292
12.6.2 设置单元格内部的渐变颜色 292
12.6.3 设置单元格的内部图案 292
12.6.4 清除单元格的内部颜色和图案 293
12.7 Border对象的常用属性及其应用 293
12.7.1 Border对象的主要属性 293
12.7.2 设置单元格区域的外部边框 294
12.7.3 设置单元格区域的全部边框 294
12.7.4 删除单元格区域的全部边框 295
12.8 处理单元格小结 295
12.8.1 选取单元格区域的基本语句 295
12.8.2 向单元格输入数据的基本语句 296
第13章 Chart对象及应用 299
13.1 通过录制宏理解Chart对象 300
13.1.1 录制绘制图表过程 300
13.1.2 宏代码分析 303
13.2 Chart对象的常用属性和方法 304
13.2.1 Chart对象的常用属性 304
13.2.2 Chart对象的常用方法 308
13.2.3 Chart对象常用属性的应用案例:获取图表信息 309
13.2.4 Chart对象常用属性和方法的应用案例:制作基本图表 314
13.3 绘制基本动态图表 315
13.3.1 绘制动态图表的方法 315
13.3.2 利用VBA绘制基本图表 315
13.4 创建动态图表 318
13.4.1 绘制动态图表指导思想 318
13.4.2 窗体设计 319
13.4.3 程序代码设计 319
13.4.4 应用举例 322
13.5 关于饼图的调整 324
13.6 调整两个图表同步变化 326
13.7 创建随源数据变化而变化的图表 327
13.8 利用图表的事件控制图表 328
13.8.1 为嵌入图表设置事件 328
13.8.2 在激活图表时就执行程序 329
13.8.3 在图表上单击或右击时就放大或缩小图表 330
13.8.4 在选择图表系列时就自动在工作表上显示出该系列的数据区域 330
13.9 关于在Excel 2007中利用VBA绘制图表 332
第14章 打印工作表 333
14.1 打印设置 334
14.1.1 设置打印区域(固定区域) 334
14.1.2 设置打印区域(不固定区域) 334
14.1.3 取消打印区域 334
14.1.4 设置打印列标题和行标题 335
14.1.5 取消打印列标题和行标题 335
14.1.6 设置页边距 335
14.1.7 设置页眉 336
14.1.8 设置页脚 337
14.1.9 设置页面的水平/垂直居中位置 337
14.1.10 设置纵向或横向打印模式 337
14.1.11 设置打印纸张大小 338
14.1.12 将工作表的全部数据都缩印在一页内 339
14.1.13 设置打印行号/列标和网格线 340
14.2 预览和打印 340
14.2.1 显示打印预览 340
14.2.2 打印工作表 340
14.3 自定义预览和打印 341
14.3.1 在任意的位置设置换页 341
14.3.2 获取打印总页数 342
14.3.3 显示打印机设置对话框 342
14.3.4 显示打印内容对话框 342
14.3.5 显示页面设置对话框 342
14.3.6 显示分页预览 342
14.3.7 隔页打印工作表 343
14.3.8 设置是否打印工作表上的Shape对象 343
14.4 通过录制宏的方式获取打印工作表的宏代码 343
第15章 Excel 2007中新增的重要数据管理分析对象 345
15.1 AboveAverage对象:设置高于平均值的视图 346
15.1.1 AboveBelow属性 346
15.1.2 AppliesTo属性 346
15.1.3 Borders属性 346
15.1.4 Font属性 346
15.1.5 Interior属性 347
15.1.6 Priority属性 347
15.1.7 Type属性 347
15.1.8 Delete方法 347
15.1.9 ModifyAppliesToRange方法 348
15.1.10 SetFirstPriority方法 348
15.1.11 SeLastPriority方法 348
15.1.12 应用案例 348
15.2 ColorScale对象:设置色阶 349
15.2.1 AppliesTo属性 349
15.2.2 ColorScaleCriteria属性 349
15.2.3 Formula属性 349
15.2.4 Priority属性 349
15.2.5 Type属性 350
15.2.6 Delete方法 350
15.2.7 ModifyAppliesToRange方法 350
15.2.8 SetFirstPriority方法 350
15.2.9 SeLastPriority方法 350
15.2.10 应用案例 350
15.3 ColorScaleCriterion对象:设置色阶条件 351
15.3.1 FormatColor属性 351
15.3.2 Index属性 351
15.3.3 Type属性 351
15.3.4 Value属性 352
15.4 ColorStop对象:设置渐变填充的光圈点 352
15.4.1 Color属性 352
15.4.2 Position属性 352
15.4.3 ThemeColor属性 352
15.4.4 TintAndShade属性 352
15.4.5 Delete方法 353
15.4.6 应用案例 353
15.5 ConditionValue对象:根据条件设置数据条 353
15.5.1 Type属性 353
15.5.2 Value属性 354
15.5.3 Modify方法 354
15.5.4 应用案例 354
15.6 Databar对象:设置数据条条件格式 355
15.6.1 Type属性 355
15.6.2 Value属性 355
15.6.3 Modify方法 355
15.7 FormatColor对象:设置条形颜色 356
15.7.1 Color属性 356
15.7.2 ColorIndex属性 356
15.7.3 ThemeColor属性 356
15.7.4 TintAndShade属性 356
15.7.5 应用案例TintAndShade属性 357
15.8 Icon对象:设置图标 357
15.9 IconSet对象:设置图标集 357
15.9.1 主要属性和方法 357
15.9.2 应用案例 358
15.10 IconSetCondition对象:设置图标集条件格式规则 359
15.10.1 AppliesTo属性 359
15.10.2 Formula属性 359
15.10.3 IconCriteria属性 359
15.10.4 IconSet属性 359
15.10.5 PercentileValues属性 360
15.10.6 Priority属性 360
15.10.7 ShowIconOnly属性 360
15.10.8 Type属性 360
15.10.9 Delete方法 360
15.10.10 ModifyAppliesToRange方法 360
15.10.11 SetFirstPriority方法 360
15.10.12 SeLastPriority方法 361
15.11 IconCriterion对象:设置图标的条件 361
15.11.1 Index属性 361
15.11.2 Type属性 361
15.11.3 Value属性 361
15.12 Sort对象:设置排序方式 361
15.12.1 Header属性 361
15.12.2 MatchCase属性 362
15.12.3 Orientation属性 362
15.12.4 Rng属性 362
15.12.5 SortFields属性 362
15.12.6 SortMethod属性 362
15.12.7 Apply方法 362
15.12.8 SetRange方法 362
15.12.9 应用案例 362
15.13 SortField对象:设置排序信息 363
15.13.1 CustomOrder属性 363
15.13.2 DataOption属性 363
15.13.3 Key属性 364
15.13.4 Order属性 364
15.13.5 Priority属性 364
15.13.6 SortOn属性 364
15.13.7 SortOnValue属性 364
15.13.8 Delete方法 364
15.13.9 ModifyKey方法 364
15.13.10 SetIcon方法 364
15.14 TableStyle对象:设置表格样式 365
15.14.1 BuiltIn属性 365
15.14.2 Name属性 365
15.14.3 TableStyleElements属性 365
15.15 TableStyleElement对象:表格样式元素 365
15.15.1 Borders属性 365
15.15.2 Font属性 365
15.15.3 HasFormat属性 365
15.15.4 Interior属性 366
15.15.5 StripeSize属性 366
15.15.6 Clear方法 366
15.16 Top10对象:符合条件格式规则的前10项 366
15.16.1 AppliesTo属性 366
15.16.2 Borders属性 366
15.16.3 Font属性 366
15.16.4 FormatRow属性 366
15.16.5 Interior属性 367
15.16.6 NumberFormat属性 367
15.16.7 Percent属性 367
15.16.8 Rank属性 367
15.16.9 TopBottom属性 367
15.16.10 Top10对象的主要方法 367
15.16.11 应用案例 367
15.17 UniqueValues对象:查找唯一值或重复值 368
15.17.1 AppliesTo属性 368
15.17.2 Borders属性 368
15.17.3 DupeUnique属性 369
15.17.4 Font属性 369
15.17.5 FormatRow属性 369
15.17.6 Interior属性 369
15.17.7 NumberFormat属性 369
15.17.8 UniqueValues对象的主要方法 369
15.17.9 应用案例 369
第16章 窗体控件设计 371
16.1 创建用户窗体 372
16.1.1 插入用户窗体 372
16.1.2 窗体的属性 372
16.1.3 窗体的方法 378
16.1.4 窗体的事件及为窗体指定事件的方法 378
16.1.5 窗体的启动、装载、卸载和关闭 379
16.1.6 如何使用户窗体布满整个屏幕 380
16.1.7 关于无模式窗体 380
16.2 创建窗体控件 381
16.2.1 控件基本概念 381
16.2.2 管理控件工具箱 382
16.2.3 合理安排窗体控件的Tab顺序键 384
16.2.4 布局窗体控件 385
16.3 常用控件及应用 385
16.3.1 标签(Label) 385
16.3.2 文本框(TextBox) 386
16.3.3 命令按钮(CommandButton) 389
16.3.4 框架(Frame) 390
16.3.5 选项按钮(OptionButton) 391
16.3.6 复选框(CheckBox) 391
16.3.7 复合框(ComboBox) 393
16.3.8 列表框(ListBox) 398
16.3.9 多页控件(MultiPage) 401
16.3.10 滚动条(ScrollBar) 403
16.3.11 数值调节按钮(SpinButton) 404
16.3.12 RefEdit控件 406
16.3.13 图像控件(Image) 408
16.4 其他控件介绍 410
16.4.1 进度条控件(ProgressBar) 410
16.4.2 ListView控件——一个简单的进销存查询系统 411
16.4.3 TreeView控件——一个简单的部门管理系统 416
16.4.4 Spreadsheet控件——在窗体上显示电子表格 421
16.4.5 ChartSpace控件——在窗体上显示图表 422
16.4.6 DTPicker控件——获取日期和时间 427
16.5 窗体的导出与导入 428
16.5.1 窗体的导出 428
16.5.2 窗体的导入 429
16.6 窗体控件应用实例:快速合并计算多个工作簿 429
16.6.1 应用程序窗口界面设计 429
16.6.2 程序代码设计 430
16.6.3 启动窗口 432
16.6.4 应用举例 432
第17章 自定义菜单与工具栏的设计 435
17.1 在系统菜单栏中添加自定义菜单 436
17.1.1 手工添加自定义菜单 436
17.1.2 手工删除自定义菜单 438
17.2 用VBA宏控制自定义菜单 438
17.2.1 自动添加自定义菜单 438
17.2.2 自动删除自定义菜单 441
17.3 建立自定义工具栏 441
17.3.1 手工建立自定义工具栏 441
17.3.2 手工删除自定义工具栏 443
17.4 用VBA宏控制自定义工具栏 443
17.4.1 自动创建自定义工具栏 443
17.4.2 自动删除自定义工具栏 446
17.5 自动创建多级自定义菜单 446
17.6 为用户窗体和控件创建快捷菜单 450
第18章 在应用程序中调用Excel工具 453
18.1 调用单变量求解工具 454
18.1.1 调用单变量求解工具的基本方法 454
18.1.2 单变量求解模型 455
18.2 调用规划求解工具 457
18.2.1 规划求解函数 457
18.2.2 使用规划求解函数需要注意的问题 460
18.2.3 在VBA中调用规划求解函数实例 461
18.2.4 变参数情况下调用规划求解工具 463
18.3 在VBA程序中调用其他Excel工具 468
第19章 程序调试 469
19.1 VBA调试工具 470
19.1.1 VBA调试工具栏 470
19.1.2 VBA调试菜单 470
19.2 调试程序 470
19.2.1 中断模式的进入和退出 470
19.2.2 控制程序的运行 471
19.2.3 设置和清除断点 473
19.2.4 检查程序运行 473
19.3 错误类型 475
19.3.1 编译错误 475
19.3.2 运行错误 475
19.3.3 逻辑错误 476
19.4 错误处理方法 476
19.4.1 设置错误陷阱 476
19.4.2 退出错误处理 477
19.4.3 小心使用On Error Resume Next语句 477
第20章 VBA帮助工具的使用 479
20.1 打开Visual Basic帮助窗格 480
20.2 如何获得Visual Basic帮助 480
20.2.1 从Visual Basic帮助窗格中获得帮助 480
20.2.2 在程序中直接得到Visual Basic帮助 482
20.2.3 通过“Visual Basic帮助”窗格的目录得到帮助 483
第21章 文件和文件夹的操作 485
21.1 操作文件和文件夹 486
21.1.1 获取当前文件夹的名称 486
21.1.2 更改文件或文件夹名称 486
21.1.3 检查文件或文件夹是否存在 487
21.1.4 获得文件的修改日期和时间 489
21.1.5 获得文件大小 489
21.1.6 返回和设置文件属性 489
21.1.7 更改默认文件夹或驱动器 490
21.1.8 创建和删除文件夹 491
21.1.9 复制文件 491
21.1.10 删除文件 492
21.2 传统的文件读取和写入 493
21.2.1 文件的基本概念 493
21.2.2 文件访问类型 493
21.2.3 顺序文件的读/写操作 494
21.2.4 随机文件的读/写操作 501
21.2.5 二进制文件的读/写操作 502
21.3 利用文件对象模型操作文件和文件夹 502
21.3.1 引用文件对象模型 502
21.3.2 FileSystemObject对象及其属性 503
21.3.3 文件操作 505
21.3.4 文件夹操作 508
21.3.5 驱动器操作 510
21.3.6 文本文件操作 512
21.3.7 FSO对象模型的其他操作 515
第22章 利用VBA控制其他应用程序 519
22.1 控制应用程序 520
22.1.1 启动应用程序 520
22.1.2 在应用程序之间切换 522
22.1.3 控制其他应用程序 523
22.2 自动化操作 524
22.2.1 链接和嵌入 524
22.2.2 自动控制 524
22.2.3 创建自动控制对象 527
22.3 与Word文件进行交互 529
22.3.1 建立一个新的Word文件 529
22.3.2 打开一个存在的Word文件 529
22.4 与Outlook应用程序进行交互——发送邮件 531
第23章 处理文本文件 533
23.1 将文本文件数据导入到Excel工作表 534
23.1.1 录制一个导入文本文件的宏 534
23.1.2 QueryTable对象及其属性和方法 537
23.1.3 创建一个导入文本文件数据的子程序 539
23.2 导入超过65 536行的文本文件数据 541
23.3 逐行导入文本文件数据 541
23.4 将工作表的数据保存到文本文件 541
23.5 利用ADO和SQL操作文本文件 543
23.5.1 利用ADO建立与文本文件的连接 543
23.5.2 查询文本文件的全部数据并复制到工作表 543
23.5.3 利用ADO和SQL导入文本文件的部分内容 544
第24章 操作Access数据库 547
24.1 创建和打开Access数据库 548
24.1.1 利用DAO对象创建Access数据库 548
24.1.2 利用Access对象创建Access数据库 550
24.1.3 打开Access数据库和数据表 551
24.2 ADO数据库访问技术 551
24.2.1 ADO的对象 551
24.2.2 引用ADO对象库 553
24.2.3 声明、打开与关闭Connection对象和Recordset对象 553
24.2.4 记录集及其主要属性和方法 554
24.2.5 引用记录字段 557
24.2.6 检查数据表是否存在 558
24.2.7 检查字段是否存在 559
24.2.8 检查字段的数据类型和字段长度 560
24.2.9 获取所有的数据表名称 562
24.2.10 将查询结果复制到Excel工作表 563
24.2.11 将查询结果作为窗体控件设置源数据 564
24.2.12 ADO应用案例——客户管理系统 565
24.3 SQL语言基础 573
24.3.1 SQL运算符 573
24.3.2 SQL常用语句及其应用 573
24.3.3 联合使用ADO和SQL操作数据库示例 576
24.4 用SQL语句建立查询 578
24.4.1 选取数据表的全部字段进行查询 578
24.4.2 选取数据表的部分字段进行查询 579
24.4.3 用WHERE子句进行查询 579
24.4.4 用DISTINCT属性词消除重复记录 580
24.4.5 用TOP属性词查询前面的若干条记录 580
24.4.6 利用LIKE运算符进行模糊查询 580
24.4.7 利用BETWEEN运算符进行查询 581
24.4.8 利用合计函数MAX、MIN、SUM、AVG进行查询 581
24.4.9 利用NULL函数进行查询 581
24.4.10 利用HAVING子句进行查询 582
24.4.11 利用ORDER子句进行组合排序 582
24.4.12 查询多个表 582
24.4.13 生成表查询和追加查询 582
24.5 ADO与SQL应用案例:职工信息浏览系统 584
24.5.1 职工浏览系统窗体结构设计 585
24.5.2 程序代码设计 585
24.5.3 系统使用 588
24.6 在不打开工作簿的情况下将工作簿数据保存为Access数据库 589
24.6.1 有关属性和方法 589
24.6.2 将整个工作表数据都保存为Access数据库 591
24.6.3 将工作表的部分单元格数据保存为Access数据库 592
24.6.4 快速汇总计算多个工作簿 592
第25章 利用ADO和SQL操作工作簿 597
25.1 利用ADO和SQL操作工作簿的方法 598
25.1.1 建立与工作簿的连接 598
25.1.2 编写SQL语句 598
25.2 利用ADO和SQL操作工作簿示例 598
25.2.1 从当前工作簿的某个工作表查询数据 599
25.2.2 从当前工作簿的多个工作表查询数据 600
25.2.3 在不打开其他工作簿的情况下对其进行查询 601
25.2.4 在不打开工作簿的情况下对多个工作簿进行汇总 602
25.2.5 编制资产负债表 606
第26章 利用Excel VBA操作SQL Server数据库 611
26.1 建立与SQL Server服务器和数据库的连接 612
26.1.1 建立与SQL Server服务器的连接 612
26.1.2 建立与SQL Server数据库的连接 613
26.2 查询SQL Server数据库数据 614
26.3 通过窗体浏览SQL Server数据库数据 615
26.4 将Excel工作表的数据添加到SQL Server数据库 619
附录 案例目录 621