第1 章 认识VBA.......................1
第1 节 认识宏.......................1
疑难1 如何显示“开发工具”选项卡..............1
※在Excel 2007 中显示“开发工具”选项卡※...................2
疑难2 如何录制和运行宏..................................3
※宏代码保存的位置※...........................4
疑难3 如何编辑宏..............................................5
※利用按钮运行宏※...............................8
疑难4 如何保存带有宏的工作簿......................8
疑难5 如何屏蔽保存工作簿时的隐私问题警告......................9
疑难6 如何设置宏的安全性............................10
疑难7 如何创建和使用数字证书签名............12
第2 节 认识VBE..........................15
疑难8 如何打开VBA 编辑器..........................15
疑难9 VBA 编辑器包含哪些窗口...................16
※VBE 各窗口简介※............................16
※VBE 各窗口位置的调整※................17
※VBE 各窗口的显示或隐藏※............17
疑难10 VB 编辑器包括哪些工具栏..........................18
第3 节 VBA 代码编写及帮助信息.....................18
疑难11 如何创建VBA 程序............................18
※VBA 代码编写格式※......................20
疑难12 如何运行及调用VBA 程序................21
※立即窗口的作用※...........................22
疑难13 如何导入或导出VBA 代码................22
疑难14 如何获取VBA 帮助............................24
疑难15 如何使用对象浏览器..........................25
※对象浏览器※...................................26
第4 节 VBA 基础........................26
疑难16 如何定义变量使VBA 程序更灵活...............26
※声明变量※.......................................27
※变量名的命名规则※.......................27
※VBA 的数据类型※.........................27
※数据类型的分类及表示方式※...............28
※变量的赋值※...................................29
※变量的读取※...................................30
※VBA 常量※.....................................30
※定长字符串与变长字符串※........... ........30
※隐式声明※.......................................31
疑难17 如何使多个程序共享变量......................31
※作用域※...........................................32
※全局变量※.......................................32
※局部变量※.......................................32
※模块级变量※...................................32
※同名变量※.......................................33
疑难18 如何进行变量类型的转换..................33
※VBA 中的类型转换函数※...................34
※整数的类型转换※...........................35
※字符的类型转换※...........................35
※数据类型的隐式转换※...................35
疑难19 如何防止变量名称拼写错误..............36
※Option Explicit 语句※.....................36
※强制显式声明变量设置※...............37
※使用编译功能查错※.......................37
疑难20 如何利用VBA 进行计算....................38
※文本连接※.......................................39
※算术四则运算※...............................39
※指数运算※.......................................39
※整除※...............................................39
※计算余数※.......................................39
※比较运算※.......................................39
※运算优先级※...................................40
※在文本中表示双引号(")※...............40
疑难21 如何分段计算奖金系数......................40
※IF 分支结构※..................................41
※逻辑运算符※...................................44
※Select…Case 分支结构※................45
※Select…Case 分支结构的条件※.................46
※Select 和IF 分支结构的区别※.................46
疑难22 如何检验文本是否以字母开头..................47
※Like 运算符※..................................48
※VBA 比较模式※.............................48
疑难23 如何判断某个数是否为质数..................49
※Do…Loop 循环※.............................50
※退出Do…Loop 循环※..........................52
※For…Next 循环※.............................53
※退出For…Next 循环※....................54
※死循环※...........................................54
※退出多层循环※...............................54
※Goto 语句和行标签※...........................54
第5 节 练习与思考...............................55
第2 章 数据的基本处理.......................56
第1 节 单元格的选取与赋值....................................56
疑难24 如何选取单元格..................................56
※对象的概念※...................................57
※对象的属性和方法※.......................57
※单元格对象Range 的表示方法※...........57
※单元格对象Cells 的表示方法※.............58
※使用对象变量表示单元格对象※............59
※Evaluate 方法表示单元格对象※.........59
※Evaluate 方法的简写模式※....................60
※Evaluate 方法的一般模式与简写模式的区别※...............60
※单元格对象的Select 方法※...............................60
疑难25 如何选取单元格区域..........................60
※以地址表示矩形单元格区域对象※..............61
※以对角单元格表示矩形单元格区域对象※.............61
※不规则单元格区域的表示※.......................62
※使用Union 方法获取合并区域※...............62
※使用Intersect 方法获取多个区域的交集※........................63
疑难26 如何读取单元格的值和显示的值.................64
※单元格对象的Value 属性※......................64
※单元格对象的Text 属性※......................65
※自动列出成员※...............................65
※单元格的数字格式属性※...............66
疑难27 如何进行单元格批量赋值...........................66
※利用Value 属性给单元格赋值※...........67
※For Each…Next 循环※....................68
※使用For Each…Next 循环的注意事项※.......................68
※利用Value 属性给单元格区域赋值※............................69
※单元格(Range)对象的Address 属性※.............................69
疑难28 如何向单元格输入公式..................................70
※利用Formula 属性给单元格输入公式※............71
※Formula 属性和Value 属性的联系与区别※....................71
※利用FormulaR1C1 属性给单元格输入公式※...........72
※R1C1 引用样式的规则※......................72
※通过代码实现粘贴值※......................73
※使用VBA 替代公式实现计算※...............73
疑难29 如何在VBA 中使用工作表函数进行计算.........................73
※WorksheetFunction 对象※......................74
※VBA 中使用工作表函数※....................75
※获取VBA 中工作表函数的帮助※..................75
第2 节 单元格的格式设置....................................75
疑难30 如何快速设置标题行格式..................75
※With 语句※......................................76
※With 语句的嵌套※..........................76
※Interior 对象※..................................77
※Font 对象※......................................78
※单元格的对齐方式※.......................78
※Selection 对象※...............................78
※利用录制宏获取格式设置代码※............79
※通用的格式设置对象※...................79
疑难31 如何批量生成上标..............................79
※Characters 对象※.............................80
※Font 对象的 Superscript 属性※...............80
※设置Characters 对象Font 的注意事项※................80
※Characters 属性的通用性※................81
疑难32 如何快速将列进行分组......................81
※Columns 对象和Rows 对象※...............82
※单列和单行的表示※.......................82
※多列和多行的表示※.......................82
※Group 方法和Ungroup 方法※................82
※单元格对象的EntireColumn 属性和EntireRow 属性※..................82
※单元格区域的Columns 属性和Rows 属性※...................83
※Outline 对象※..................................84
疑难33 如何批量合并相同的单元格..............84
※Range 的Merge 方法合并单元格※...............85
※VBA 运行时关闭警告※..................85
※多行中相同的内容处理※..................86
疑难34 如何创建图片批注..............................86
※批注(Comment)对象※..................87
※批注的添加与删除※.......................87
※FillFormat 对象※.............................88
※On Error 语句※...............................88
第3 节 单元格的定位与查找...............................89
疑难35 如何利用VBA 程序定义条件格式.............89
※VBA 条件格式的原理※........................90
※表示整行的方法※...........................91
※日期函数DateSerial※.....................91
※利用工作表事件实时设置格式※......91
疑难36 如何一次性替换所有的错误值.................91
※Range 对象的Find 方法※..................92
※参数省略表示法※...........................93
※查找格式※.......................................94
※使用Is Nothing 判断对象是否初始化※................94
※IsError 函数※..................................94
※SpecialCells 方法※..........................95
※Find 方法的一般形式※...................96
※CVErr 函数※...................................97
疑难37 如何获取最后一行数据的行数..........97
※使用Find 方法查找最后的单元格※.....................99
※Find 方法按行查找和按列查找的区别※.........................99
※获取工作表总行数※.....................100
※单元格对象的End 属性※.............101
※End 属性的局限性※.....................101
※其他获取最后数据行行号的方法※......................102
疑难38 如何按颜色查找单元格....................102
※单元格对象的Clear 方法※..........103
※动态表示数据区域※.....................104
※单元格对象的Copy 方法※..........104
※单元格对象的选择性粘贴(PasteSpecial)方法※......................104
第4 节 数据的整理...............................................105
疑难39 如何按条件隐藏数据行....................106
※行和列的隐藏※.............................107
※单元格对象的AutoFilter(自动筛选)方法※.............107
※单元格对象的AdvancedFilter(高级筛选)方法※.........................109
疑难40 如何批量删除空行............................109
※单元格删除Delete 方法※............. 110
※单元格删除的通用算法※.................. 110
※利用Union 获取整个单元格区域进行统一操作※.................... 111
※Union 方法的注意事项※.......................... 111
※单元格插入Insert 方法※.............................. 112
疑难41 如何实现逐行输入............................ 112
※Protect 方法和Unprotect 方法※............... 113
※单元格的Locked 属性※........................ 114
※允许VBA 修改保护后的工作表※.......... 114
疑难42 如何用VBA 创建下拉列表........................ 115
※Validation 对象※........................... 115
※Validation 对象的Add 方法※............. 116
疑难43 如何使用VBA 对数据按自定义序列进行排序...................... 117
※单元格对象的Sort 方法※.................. 118
※添加和删除自定义序列CustomList ※........................... 119
※使用自定义序列排序※....................... 119
※Sort 对象※.....................................120
※排序字段SortField※........................120
※按颜色排序※.................................121
※设置排序区域SetRange 方法※.............121
第5 节 练习与思考...............................................121
第3 章 VBA 常用函数和语句................................122
第1 节 数学函数....................................122
疑难44 如何用VBA 进行四舍五入.....................122
※VBA 的Round 函数※......................123
※VBA 的Round 函数与工作表Round 函数的区别※..............123
※在Office 软件中使用自定义函数替代VBA 的Round 函数※................125
疑难45 如何随机筛选指定个数的记录....................125
※随机数Rnd 函数※........................126
※不重复地挑选数据※.....................127
※Rnd 函数语法※.............................127
※伪随机数概念※.............................127
※Randomize 语句※..........................127
疑难46 如何利用VBA 转换十六进制数字............127
※VBA 的Hex 函数※.......................128
※利用工作表函数进行进制转换※.................128
※以文本形式表示数字※.................129
※单元格的Prefix 属性与Excel 的TransitionNavigKeys 属性※........129
※其他进制数字在VBA 中的表示方法※..............129
第2 节 文本函数...................................................129
疑难47 如何判断某文本中是否包含指定字符.....................129
※Instr 函数※....................................130
※InstrRev 函数※..............................131
疑难48 如何批量替换文本中的指定字符............131
※Replace 函数※...............................132
※单元格对象的Replace 方法※.............133
疑难49 如何根据身份证号码判断性别.............133
※Left、Right 和Mid 函数※.....................135
※Len 函数※.....................................135
疑难50 如何替换文本中指定位置的字符...............135
※MID 语句※....................................136
※使用MID 语句的注意事项※...................136
※MID 语句的优势和局限性※..............137
第3 节 日期和时间函数......................................137
疑难51 如何获取和设置计算机中的当前日期.....................137
※Date 函数和Date 语句※....................138
※DateSerial 函数※...........................138
※更改时间及日期的限制※...........................139
※Time 函数和Time 语句※......................139
※Now 函数※....................................139
※VBA 中日期的实质※....................139
疑难52 如何计算合同到期日期....................140
※DateAdd 函数※.............................140
疑难53 如何提取身份证号码中的出生日期并计算年龄.............141
※DateDiff 函数※..............................142
※DateDiff 函数中interval 参数“w”和“ww”的区别※...............143
※VBA 的DateDiff 函数和工作表函数DateDif 的区别※..............143
疑难54 如何将日期转换成英文格式............144
※Format 函数※................................145
※特殊的英文格式日期※.................146
※使用DatePart 函数获取日期信息※...........................146
第4 节 其他常用函数和语句.............................147
疑难55 如何求得文本计算式的计算结果..........................147
※去除有规律但内容不定的文本※...............148
※String 函数※..................................148
※Evaluate 方法计算表达式的值※....................149
※利用VBScript 的Eval 函数计算表达式的值※.................149
疑难56 如何获取当前Windows 登录用户名.............149
※Environ 函数※...............................150
※获取所有的系统环境变量※.........150
疑难57 如何为宏创建快捷键........................150
※Application.OnKey 方法※.............151
※Application.OnKey 方法的注意事项※...............152
※Application.SendKeys 方法※........152
疑难58 如何定时运行程序............................152
※Application.OnTime 方法※...........153
※使用Application.OnTime 重复执行程序※....................154
※取消Application.OnTime 定时器的方法※......................154
疑难59 如何用VBA 在工作表中创建文件清单.............................154
※Dir 函数※......................................155
※Dir 函数查找路径下所有的文件※................156
※GetAttr 函数获取文件属性※..................156
※SetAttr 语句修改文件属性※...................156
疑难60 如何用VBA 将文件复制到另一个文件夹下并改名..............156
※FileCopy 语句※.............................158
※Name…As 语句※..........................158
第5 节 练习与思考...............................................158
第4 章 多表数据处理..............................................159
第1 节 跨工作表的数据处理.............................159
疑难61 如何按模板快速生成指定数量的工作表.............................159
※工作表对象(Worksheet)及其表示方法※........................161
※工作表集合和工作表※.................162
※工作表常用的基本属性※.............162
※工作表的添加与复制※.................163
※工作表对象(Worksheet)与单元格对象(Range)的关系※..............163
※工作表的删除※.............................164
※Application.DisplayAlerts 属性※.......164
疑难62 如何进行跨表数据查询....................165
※跨表操作单元格※.........................166
※连续查找功能※.............................166
疑难63 如何进行跨表数据录入....................167
※ListObject 对象※...........................168
※ListObject 对象的表示方法※.................169
※ListColumn 对象※.........................169
※向ListObject 中添加新数据※......170
※使用VBA 添加ListObject 对象※.......171
※Excel 中数据存储的结构※...........171
疑难64 如何按照关键字批量创建超链接...............173
※Hyperlink 对象※............................174
※创建超链接※.................................175
※删除超链接及访问超链接※.........175
※创建超链接打开指定的宏代码※.......175
第2 节 跨工作簿的数据处理.............................175
疑难65 如何将多个工作表保存至单独的工作簿中.....................176
※工作簿对象(Workbook)及其表示方法※.........................177
※Application、Workbook、Worksheet 和Range 的关系※.............177
※工作簿(Workbook)对象的常用属性※..........................178
※工作簿的新建和保存※.................178
※获取当前文件的目录※.................180
※跨工作簿复制工作表※.................180
※使用Application.PathSeparator 获取系统路径分隔符※..........180
※SaveAs 和Save 的区别※..............180
疑难66 如何读取其他工作簿的数据............181
※打开关闭的工作簿※.....................182
疑难67 如何导入多个工作簿中的工作表...........183
※导入多个工作簿中的工作表※.........185
※Application.ScreenUpdating 属性※...............185
疑难68 如何将当前工作簿备份至指定目录...........185
※工作簿对象(Workbook)的SaveCopyAs 方法※..............186
※SaveCopyAs 方法和SaveAs 方法的区别※......................186
第3 节 工作表和工作簿的事件程序................186
疑难69 动态改变当前选中行的颜色................186
※事件的概念※.................................187
※Worksheet 的Selection_Change 事件※...............................188
※启用Excel 的事件※......................188
※工作表事件一览※.........................188
疑难70 如何实现双击标题行即对该列降序排序...........................189
※工作表双击事件(BeforeDoubleClick)※.......................189
疑难71 如何完善数据有效性验证......................190
※工作表对象的Change 事件※...............191
※判断数据是否符合有效性设置※.......................191
※Change 事件的缺陷※....................191
※利用VBA 撤销操作※...................192
※事件循环※.....................................192
※禁用事件※.....................................193
疑难72 如何动态隐藏工作表........................193
※工作表(Worksheet)对象的Select 方法※......................194
※工作表激活事件(Activate)和失去激活状态事件(Deactivate)※.........196
※工作簿事件※.................................197
※类模块和Me 变量※......................198
疑难73 如何实现必填数据为空则无法保存..............199
※工作簿保存事件(BeforeSave)※................200
疑难74 如何进行个性化的工作表保护...........200
※工作簿的Workbook_SheetChange 事件※..........................202
※工作簿的Workbook_ Activate 事件※..................................202
※事件的组合※.................................203
疑难75 如何实现用户登录机制....................203
※工作簿打开事件(Open)※........205
※登录的机制※.................................205
※auto_open 和auto_close※.............206
第4 节 练习与思考...............................................206
第5 章 数据处理的综合应用.................................207
第1 节 计算及统计...............................................207
疑难76 如何计算个人所得税........................207
※个人所得税计算的步骤※.............209
※实现简单计算的思考步骤※..........209
疑难77 如何进行销售合计汇总....................209
※使用循环结合工作表函数进行数据合计※........................210
※行循环结构的建立※..................... 211
※列循环结构的建立※..................... 211
※多层嵌套循环结构的建立※.........213
※循环的简化※.................................215
※以编程的方式思考问题※.............215
疑难78 如何将15 位身份证号码升为18 位........215
※身份证号码解读※.........................216
※利用字符串截取进行查询※.........217
第2 节 数据查询与汇总......................................217
疑难79 如何罗列满足条件的所有数据........217
※内嵌分支的循环结构※.................219
※罗列数据※.....................................219
※循环结构建立的误区※.................219
疑难80 如何在多个工作表中查找指定的数据.............................219
※多表查询※.....................................221
疑难81 如何获取不重复的数据....................221
※去除重复值(RemoveDuplicates)方法※.........................222
※使用VBA 去除重复值※...............224
※巧用Exit 语句退出循环以加快速度※................224
※循环中判断条件的确立※.............224
※使用Find 方法代替循环遍历查找※..................................225
疑难82 如何对比两个表的数据....................225
※两表比较的步骤※.........................227
疑难83 如何按单列汇总数据........................227
※按单列汇总数据的步骤※.............229
※可互换的循环嵌套※.....................229
※多个循环结构的合并※.................229
※学会简单直接的思考方式※...............231
疑难84 如何按多列汇总数据........................231
※按多列汇总数据的步骤※.............233
疑难85 如何制作多级下拉列表....................233
※创建多级下拉列表的思考步骤※.......235
疑难86 如何获取交叉查询结果表................236
※交叉汇总表※.................................238
※建立交叉汇总表的步骤※.............238
※建立交叉汇总表的优化※.............239
疑难87 如何按单列汇总多个工作表.................239
※汇总多个工作表※.........................241
※汇总数据位置不同的多个工作表※.........................241
疑难88 如何汇总列数不相等的多个工作表.....................241
※合并汇总(Consolidate)方法※..............242
※Array 函数※..................................243
※Evaluate 方法构造数组※..............244
※使用VBA 汇总多个列数不相等的工作表的步骤※..................246
疑难89 如何按指定列分拆工作表................246
※拆分工作表的步骤※.....................248
※判断工作表是否存在的步骤※.....................248
※Is 运算符比较对象变量※...................248
疑难90 如何制作动态汇总的数据查询表...............249
※动态汇总※.....................................251
※多列连接※.....................................252
疑难91 如何利用数据透视表汇总数据...................252
※数据透视表缓存对象(PivotCache)※.........................254
※访问数据透视表缓存对象(PivotCache)※.................254
※数据透视表对象(PivotTable)※...................254
※创建数据透视表※.........................255
※访问数据透视表对象※.................255
※数据透视表的字段(PivotField)※.......................255
※数据字段※.....................................256
疑难92 如何汇总多工作簿的数据................256
※汇总多个工作簿※.........................259
※使用GetObject 函数获取对象※.........259
第3 节 数组处理...................260
疑难93 如何建立数组加快程序运行...................260
※数组的基本概念※.........................261
※数组的声明※.................................262
※数组的赋值与数组数据的读取※.................262
※Ubound 和Lbound 函数获取数组的上下限※..................263
※For Each…Next 循环遍历数组的注意事项※...................263
※计算程序运行的时间※.................264
※数组处理的极限※.........................264
疑难94 如何使用数组处理列数较多的数据............264
※建立列数下标的数组※.................267
※使用枚举Enum※..........................267
疑难95 如何利用数组实现分列....................268
※Split 函数※....................................269
※将动态数组写入单元格※.............270
※数组的维度与单元格行列的关系※.......................271
※Option Base 语句※........................271
※Join 函数※.....................................271
疑难96 如何利用数组提取不重复值............272
※利用数组提取不重复值列表的步骤※..................................273
※Redim Preserve 语句※...................273
※使用工作表函数Transpose 对数组进行转置※.......................274
※Filter 函数※...................................275
※使用Filter 函数提取不重复值的步骤※.......................276
※空数组的判断※.............................276
※Filter 函数的精确筛选※...................276
※Filter 函数在数据比对中的应用※...............277
疑难97 如何进行条件数量不确定的多条件数据查找...............277
※使用数组进行多条件查找※.........279
第4 节 练习与思考...............................................280
第6 章 数据的转换..................................................281
第1 节 数据的导入与导出..................................281
疑难98 如何导入Access 数据库的数据...................281
※利用ADO 连接数据库※...................283
※利用ADO 执行SQL 查询并在Excel 中输出结果※.....................283
※SQL 语句※....................................283
※ADO 连接不同的数据库※....................283
疑难99 如何利用VBA 批量导入文本文件.............285
※用Open 语句和Close 语句打开和关闭文件※..................287
※Input 语句和Line Input 语句读取文本文件※.....................287
※EOF 函数※....................................288
※Transpose 函数将嵌套的一维数组转换为二维数组※........................288
疑难100 如何将xls 格式工作簿批量转换为xlsx 格式....................290
※使用HasVBProject 属性判断工作簿是否有代码※........................291
※禁止打开工作簿时执行程序※............292
疑难101 如何将Excel 按指定格式导出为文本文件.................292
※Open 语句创建文本文件※.........................294
※使用Print 语句向文件中写入指定的内容※.....................294
※Write 语句※.................................294
※Index 函数取二维数组的子集※.............295
疑难102 如何利用VBA 批量发送邮件..............................295
※CDO 组件※.................................297
※CDO.Message 对象※...................297
※CDO.Message.Configuration 对象※...................297
※前期绑定与后期绑定※...............298
※New 关键字创建对象※..............299
※添加邮件的附件※................................300
第2 节 图形与图表...............................................300
疑难103 如何利用VBA 批量插入图片.................300
※Shapes、Shape 和ShapeRange※............302
※Shapes 对象插入图形的方法※...............303
※Excel 的坐标※.............................304
※图形大小的调整※.......................304
※获取图片的原始大小※...............305
※将图片按比例缩放至单元格※......305
※图片批量插入的步骤※...............306
※Pictures 集合※.............................306
疑难104 如何利用VBA 生成图表................307
※ChartObjects 集合和ChartObject 对象※.........................308
※Chart 对象※.................................309
※数据系列(Series)对象※.................309
※添加图表的其他方法※...............310
疑难105 如何将工作表数据批量导出为图片................. 311
※Copy、Cut 和Paste 方法※....................312
※图表对象(Chart)的Export 方法※............313
※利用PPT 导出图片※..................313
第3 节 练习与思考...............................................314
第7 章 自定义过程和函数的开发........................315
第1 节 自定义过程和函数的开发实例............315
疑难106 如何编写带参数的过程..................315
※使用含有参数的过程供多个过程调用※..........................317
※含有参数的过程的声明方法※..................318
※编写含有参数的过程的方法※...........319
※使用Application.Run 调用过程※..............319
疑难107 如何编写处理数组排序的过程..........319
※ByVal 和ByRef 的区别※............................320
※选择排序※...................................321
※数组排序的方法简介※...............322
疑难108 如何编写个人所得税计算函数.................322
※声明自定义函数※.......................323
※自定义函数的返回值※.......................324
※自定义函数和过程的区别与联系※......................324
疑难109 如何编写获取某列最后非空单元格行号的函数......................324
※Volatile 方法※.............................325
※易失性函数※...............................325
疑难110 如何编写获取最小值的自定义函数.......................325
※使用ParamArray 关键字声明数组参数※........................327
※IsMissing 函数※..........................327
※IsArray 函数※........................................328
※函数的嵌套与递归※...........................328
疑难111 如何编写条件查询的函数..........................330
※使参数适用于数组和单元格区域※............................331
※TypeName 函数和VarType 函数※.....................................331
※查找指定位置的数据※.........................333
※返回指定错误值的函数※....................333
疑难112 如何编写函数按条件汇总关闭的工作簿中的数据..................334
※自定义函数参数的跨表引用※..................................335
※条件求和函数的累加原理※..........................336
※使用Evaluate 方法将引用转换为数组※..................................336
疑难113 如何使用自定义函数返回满足条件的所有记录....................336
※以数组作为返回值的自定义函数※.............................338
※Application.Caller 属性※..........................................338
疑难114 如何设置自定义函数的说明...............................339
※Application.MacroOptions 方法※................................340
第2 节 练习与思考...............................................341
第8 章 Excel 对话框操作.......................................342
第1 节 Excel 对话框操作实例...........................342
疑难115 如何创建信息提示对话框...............342
※MsgBox 函数※............................343
※MsgBox 函数buttons 参数的组合※....................344
※Application.Cursor 属性※...................344
※Application.SatusBar 属性※.................345
疑难116 如何制作具有交互功能的提示对话框...............................345
※MsgBox 函数的返回值※......................346
疑难117 如何创建具备输入功能的对话框....................347
※VBA.InputBox 函数※...........................348
※InputBox 函数的返回值※......................348
疑难118 如何反复提示对话框直到数据合法...................348
※IsNumeric 函数※.........................349
※Application.InputBox 方法※....................350
疑难119 如何创建对话框的帮助文档.................351
※CHM 文件及HTML Help Workshop※........................356
※在Excel VBA 中调用CHM 文件※.................................356
※创建VBA 项目的帮助系统※.....................357
※使用语句打开帮助文件※...........357
疑难120 如何显示打开文件对话框............................357
※Application.GetOpenFilename 方法※............................358
※FileDialog 对象※.........................360
※FileDialog 对象的常用属性※..............360
※使用FileDialog 对象的属性Filters 添加筛选※..................360
※FileDialog 对象的Show 方法和Execute 方法※.................361
※遍历通过FileDialog 对象选择的文件※......................361
※Application.GetSaveAsFilename 方法※...........................361
※Application.Dialog 对象※......................361
第2 节 练习与思考...............................................361
第9 章 控件和窗体的应用.....................................362
第1 节 控件的基础...............................................362
疑难121 如何在工作表中插入ActiveX 控件..................362
※ActiveX 控件※............................362
※Excel 中常用的ActiveX 控件※.....................363
※编辑ActiveX 控件※...................363
※通过代码访问ActiveX 控件※...................364
※工作表中窗体(表单)控件和ActiveX 控件的区别※......................364
疑难122 如何更改ActiveX 控件的属性........................364
※ActiveX 控件的属性※................365
疑难123 如何创建ActiveX 控件的事件............................365
※ActiveX 控件的事件※............................366
※ActiveX 控件的常用事件※.....................366
疑难124 如何使用日期选择控件向单元格输入日期.........................367
※DTPicker 控件※..........................368
※DTPicker 控件的时间和日期的切换※........................369
※DTPicker 控件的日期输入方式※................................369
※DTPicker 控件的Value 属性与Change 事件※..................369
※使用DTPicker 控件实现日期选择并赋值给单元格※................369
※注册DTPicker 控件※.................370
疑难125 如何创建动态智能匹配的下拉列表.......................371
※TextBox 控件和ListBox 控件※...............................373
※ListBox 控件的ListFillRange 属性和List 属性※....................373
※ListBox 控件的多列显示※.........374
※ListBox 控件的值※.....................374
※模糊查询下拉列表※...................375
※控件的选用※...............................375
※ListBox 和ComboBox 控件※..............375
疑难126 如何批量设置控件属性..................376
※CallByName 函数※.....................378
※使用CallByName 函数获取子对象※...............................378
※使用CallByName 函数批量修改对象的属性※.............................378
※灵活使用自定义过程※...............378
第2 节 窗体和控件的深入应用..........................379
疑难127 如何创建并显示窗体......................379
※窗体对象及其属性※........................380
※窗体对象的显示与关闭※......................380
※窗体对象的装载与显示※......................380
※窗体对象的卸载与隐藏※....................381
※窗体的显示模式※............................381
疑难128 如何在窗体中插入控件.......................381
※控件工具栏※...............................383
※控件的顺序※...............................383
※控件的组合※...............................384
疑难129 如何利用窗体向工作表中录入数据.......................385
※窗体控件与工作表的交互※............386
※窗体的事件※...............................387
※窗体中Controls 集合访问控件※...................388
※控件的排列※...............................388
※使用控件数组进行赋值※...................388
疑难130 如何利用窗体创建实时筛选浮动工具栏.........................389
※Default 和Cancel 按钮※.......................392
※提高单元格隐藏的速度※.......................392
※自制浮动工具栏※.......................392
※动态显示与隐藏窗体※...............393
疑难131 如何移动不同列表框中的项目...........393
※ListBox 的AddItem 方法和RemoveItem 方法※.....................397
※ListBox 控件的MultiSelect 属性※.............................397
※ListBox 控件的Value 属性※...................398
※ListBox 控件的ListIndex 属性※................398
※VBA 实现ListBox 项目的移动※.....................398
疑难132 如何利用复合框制作工作簿/表导航......................399
※复合框(ComboBox)控件※........................400
※利用复合框制作二级下拉列表※......................401
疑难133 如何利用窗体制作向导系统....................401
※多页(MultiPage)控件※............403
※多页控件的页面※.......................403
※使用代码更改当前显示的页面※........................................404
※Application. SheetsInNewWorkbook 属性※.............................404
疑难134 如何创建具有窗体交互的函数..............405
※创建具有窗体交互的函数的步骤※...........407
※ListBox 控件的Selected 属性※ .............408
疑难135 如何利用窗体制作登录界面.................408
※使用窗体作为操作界面※...................410
※隐藏Excel 工作簿※.................... 411
疑难136 如何动态地创建控件以显示查询结果............................... 411
※使用代码为窗体添加控件※............414
※通过名称控件排列※...................414
※使用类模块为按钮批量添加事件※...............415
疑难137 如何动态创建窗体..........................416
※VBComponents 集合※................419
※VBComponent 对象※...................419
第3 节 练习与思考......................420
第10 章 自定义功能区........................................421
第1 节 自定义功能区实例..................................421
疑难138 如何添加选项卡和内置控件.......................421
※功能区简介※...............................423
※使用Excel 选项自定义功能区※............423
疑难139 如何创建工作簿级的自定义选项卡.................................423
※Excel 工作簿的实质※.........................426
※XML 简介※.................................426
※customUI.xml※............................428
※常用的功能区控件及通用属性※.....................428
※tabs 控件和tab 控件※......................429
※group 控件※................................429
※命令控件※...................................429
※内置控件的ID※..........................430
※customUI.xml 中控件和属性的命名规则※.....................430
※使用customUIEditor 工具制作选项卡※...........................430
疑难140 如何在功能区添加按钮并运行VBA 程序.....................432
※回调(CallBack)※....................434
※IRibbonControl 对象※.................434
疑难141 如何动态更改功能区控件属性......434
※动态属性※...................................438
※IRibbonUI 对象和Invalidate 方法※................................438
※设置IRibbonUI 对象※........................439
※Invalidate 的实质※............................439
疑难142 如何添加自定义功能区列表控件的选项..........................439
※dropDown 控件添加选项※................442
※dropDown 控件的onAction 属性※.............................443
※获取dropDown 控件选中选项的另一个方法※.............443
疑难143 如何实现功能区控件之间的交互...........444
※切换按钮(toggleButton)控件的getPressed 属性※.............447
※切换按钮(toggleButton)控件的onAction 属性※...........447
※切换按钮之间的交互※...............447
※条件筛选的自定义过程※...........448
第2 节 练习与思考...............................................448
第11 章 程序的错误调试.....................................449
疑难144 如何利用出错信息判断工作表是否存在.........................449
※On Error 语句※...........................450
※Err 对象※.....................................451
※“运行时错误”的利用※...............451
※代码标签※...................................451
疑难145 如何在中断模式下调试程序..........452
※中断模式※ ....................................453
※程序的测试※...............................453
疑难146 如何逐句调试程序..........................453
※逐句运行※...................................454
疑难147 如何为程序设置断点调试程序.................454
※断点※...........................................455
疑难148 如何运用监视窗口监控变量的值..............456
※监视窗口※.........................................456
※使用“立即窗口”※...................457
疑难149 如何自定义错误..............................457
※Err 对象的Raise 方法※....................458
疑难150 如何进行程序出错的自动处理................459
※处理错误的两种方式※...............460
※Resume 语句※.............................461
第12 章 综合开发实战.........................................462
疑难151 如何制作通用工具..........................462
· · · · · · (
收起)