Excel疑难千寻千解丛书6:Excel 2010 VBA入门与提高.pdf

Excel疑难千寻千解丛书6:Excel 2010 VBA入门与提高.pdf
 

书籍描述

内容简介
《Excel 2010 VBA入门与提高》着重于Excel VBA 的基础知识和技巧,通过153 个实例为读者展示应用VBA 解决实际问题的思路和方法,并展示了常规VBA 数据处理的要点,帮助读者学会解决实际问题的思考方式。阅读《Excel 2010 VBA入门与提高》后,读者可以掌握VBA 的基本语法、数据处理、自定义函数的编写、功能区设计等重要技术,并将其应用于实际工作中,从而极大地提升工作效率和数据处理的正确性。
《Excel 2010 VBA入门与提高》的每个案例采取疑难描述、解决方案、操作方法、原理分析、知识扩展五个步骤进行讲解,力图在解决问题的同时让读者可以通晓其思路和原理。所有的案例均在Windows 7 环境下使用Excel 2010编写完成并通过测试,其中的绝大部分代码可适用于Excel 2003 和Excel 2007。
《Excel 2010 VBA入门与提高》是“Excel 疑难千寻千解”丛书之一,适合有意学习VBA 或者已经开始学习VBA 的初学者,也可以作为VBA 熟练开发者的参考书。

海报:

编辑推荐
感谢您选择“Excel 疑难千寻千解”丛书之《Excel 2010 VBA 入门与提高》。“Excel疑难千寻千解”丛书是由Excel技巧网的负责人、微软最有价值专家(MVP)黄朝阳先生策划并组织编写的一套丛书。
《Excel 2010 VBA入门与提高》由 153 个实用的案例构成,由浅入深、由易到难地向您展示 VBA 在实际工作中的应用。《Excel 2010 VBA入门与提高》是 VBA 入门与提高的教材,其宗旨在于不但介绍如何编写 VBA 程序,更着重介绍如何编写 VBA 程序解决实际工作的疑难,以及对同类的问题提供解决思路。

名人推荐
在浏览过琳琅满目、各种类型各种专题的Excel图书之后,在领略过百科全书式的详细解析或是武功秘籍般的招式演绎之后,依然有这样一套“疑难千寻干解丛书”能够让人眼前一亮。刮目相看的原因在于,这套书真正把立场和视角建立在读者基础之上——每一个问题都来源于Excel用户可能真实面对的疑惑和困扰,每一个解答可能正是许多坐在计算机前束手无策的朋友正在搜寻的目标。
——微软全球最有价值专家MVP方骥

媒体推荐
Excel 的博大精深已令活跃于网络社区中的众多高手深有体会,一直以来,人们都在探寻关于Excel 的最佳学习方法和途径,希望通过其获取最新而且实用的Excel 应用技术,相信本书的读者能得到一份这方面的满意答卷。
——微软全球最有价值专家MVP 陈军(网名:chenjun)
本书完全从实用角度着手,基于各种实际工作中的例子,让您快速找到适合自己的方式方法,“工欲善其事,必先利其器”,你,准备好拥有“利器”了吗?
——微软全球最有价值专家MVP 程传魏(网名:kewinchengcw)
本套丛书立意新颖,内容充实,按照“提出问题→解决问题→扩展问题”的模式,图文并茂地对大量实际工作中的常见Excel 问题进行了细致的描述和深入浅出的讲解。授人以“鱼”,同时授人以“渔”,适合从基础到高级的Excel 用户和程序员阅读,使您的工作事半功倍,得心应手!
——微软全球最有价值专家MVP 杨志宁(网名:northwolves)
在这座VBA“鱼庄”里,我不仅品尝了美味可口的“鱼肉”,更加赞叹作者烹饪美味“鱼肉”的高超技艺。本书语言简洁,代码精炼,疑难案例实用,解决思路巧妙,值得阅读!
——微软全球最有价值专家MVP 《Word 2010 实用技巧大全》作者 陈少迁(网名:0Mouse)
本书很适合初学者,内容的编排上层层递进,浅显易懂,示例代码都有详尽解析,不仅可以直接解决疑难问题,还能学习到规范、高效的VBA 编程习惯。对已经熟练使用VBA 的人来说,本书针对同一个问题,经常提供多种解决方案,可以用来拓展编程思路和帮助查漏补缺。阿木一直是我很佩服的一位学长,常年在技术社区帮助网友解决问题,并且有HR 和程序员双重背景,所以他清楚地知道,怎样写作可以让大众接受,如何讲解可以让读者吸收。让我们一起跟随着阿木的脚步,来领略VBA 的独特魅力吧。
——程序员 彭佳
本书由浅入深,从典型案例出发,作者高超的VBA 编程水平和驾轻就熟的讲解,将VBA的优点展现得淋漓尽致,而且详细的代码注释清晰明了。如果你还在为苦于看不懂VBA 代码发愁,那么这本书是你很好的选择。
——宁波港股份有限公司镇海港埠分公司 吴旭东
本书着实让人眼前一亮,它避开了繁杂和枯燥的理论,以实例的方式切入各知识点来讲解。随着学习的深入,你就会发现原本应用中复杂的Excel 系统竟然如此有趣而简单。如果你想从数据如山的痛苦中解脱出来,就看看这本书吧,它可谓是由简入繁,培养高手的经典之作。
——汉能控股集团 陈黎明

作者简介
黄朝阳,网名apolloh,微软全球最有价值专家(MVP),Excel技巧网站长,拥有十多年丰富的企业信息化实践和管理经验,精通Excel和MS SQL在企业中的应用。早期曾在多个Office技术社区担任版主,参与过多部Excel畅销书的编著工作。
新浪微博:@Excel的那些事
李懿,网名amulee,ExcelTip.net技术社区版主。多年从事人力资源管理工作,专注于Excel在办公自动化中的应用,在各领域Excel应用开发中有着丰富的实战经验。

目录
第1章认识VBA1
第1节认识宏1
疑难1如何显示“开发工具”选项卡1
在Excel2007中显示“开发工具”选项卡2
疑难2如何录制和运行宏3
宏代码保存的位置4
疑难3如何编辑宏5
利用按钮运行宏8
疑难4如何保存带有宏的工作簿8
疑难5如何屏蔽保存工作簿时的隐私问题警告9
疑难6如何设置宏的安全性10
疑难7如何创建和使用数字证书签名12
第2节认识VBE15
疑难8如何打开VBA编辑器15
疑难9VBA编辑器包含哪些窗口16
VBE各窗口简介16
VBE各窗口位置的调整17
VBE各窗口的显示或隐藏17
疑难10VB编辑器包括哪些工具栏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
OptionExplicit语句36
强制显式声明变量设置37
使用编译功能查错37
疑难20如何利用VBA进行计算38
文本连接39
算术四则运算39
指数运算39
整除39
计算余数39
比较运算39
运算优先级40
在文本中表示双引号(")40
疑难21如何分段计算奖金系数40
IF分支结构41
逻辑运算符44
Select
Select
Select和IF分支结构的区别46
疑难22如何检验文本是否以字母开头47
Like运算符48
VBA比较模式48
疑难23如何判断某个数是否为质数49
Do
退出Do
For
退出For
死循环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
ForEach
使用ForEach
利用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
OnError语句88
第3节单元格的定位与查找89
疑难35如何利用VBA程序定义条件格式89
VBA条件格式的原理90
表示整行的方法91
日期函数DateSerial91
利用工作表事件实时设置格式91
疑难36如何一次性替换所有的错误值91
Range对象的Find方法92
参数省略表示法93
查找格式94
使用IsNothing判断对象是否初始化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
添加和删除自定义序列CustomList119
使用自定义序列排序119
Sort对象120
排序字段SortField120
按颜色排序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
ApplicationOnKey方法151
ApplicationOnKey方法的注意事项152
ApplicationSendKeys方法152
疑难58如何定时运行程序152
ApplicationOnTime方法153
使用ApplicationOnTime重复执行程序154
取消ApplicationOnTime定时器的方法154
疑难59如何用VBA在工作表中创建文件清单154
Dir函数155
Dir函数查找路径下所有的文件156
GetAttr函数获取文件属性156
SetAttr语句修改文件属性156
疑难60如何用VBA将文件复制到另一个文件夹下并改名156
FileCopy语句158
Name
第5节练习与思考158
第4章多表数据处理159
第1节跨工作表的数据处理159
疑难61如何按模板快速生成指定数量的工作表159
工作表对象(Worksheet)及其表示方法161
工作表集合和工作表162
工作表常用的基本属性162
工作表的添加与复制163
工作表对象(Worksheet)与单元格对象(Range)的关系163
工作表的删除164
ApplicationDisplayAlerts属性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
使用ApplicationPathSeparator获取系统路径分隔符180
SaveAs和Save的区别180
疑难66如何读取其他工作簿的数据181
打开关闭的工作簿182
疑难67如何导入多个工作簿中的工作表183
导入多个工作簿中的工作表185
ApplicationScreenUpdating属性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_close206
第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
ForEach
计算程序运行的时间264
数组处理的极限264
疑难94如何使用数组处理列数较多的数据264
建立列数下标的数组267
使用枚举Enum267
疑难95如何利用数组实现分列268
Split函数269
将动态数组写入单元格270
数组的维度与单元格行列的关系271
OptionBase语句271
Join函数271
疑难96如何利用数组提取不重复值272
利用数组提取不重复值列表的步骤273
RedimPreserve语句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语句和LineInput语句读取文本文件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
CDOMessage对象297
CDOMessageConfiguration对象297
前期绑定与后期绑定298
New关键字创建对象299
添加邮件的附件300
第2节图形与图表300
疑难103如何利用VBA批量插入图片300
Shapes、Shape和ShapeRange302
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
使用ApplicationRun调用过程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
ApplicationCaller属性338
疑难114如何设置自定义函数的说明339
ApplicationMacroOptions方法340
第2节练习与思考341
第8章Excel对话框操作342
第1节Excel对话框操作实例342
疑难115如何创建信息提示对话框342
MsgBox函数343
MsgBox函数buttons参数的组合344
ApplicationCursor属性344
ApplicationSatusBar属性345
疑难116如何制作具有交互功能的提示对话框345
MsgBox函数的返回值346
疑难117如何创建具备输入功能的对话框347
VBAInputBox函数348
InputBox函数的返回值348
疑难118如何反复提示对话框直到数据合法348
IsNumeric函数349
ApplicationInputBox方法350
疑难119如何创建对话框的帮助文档351
CHM文件及HTMLHelpWorkshop356
在ExcelVBA中调用CHM文件356
创建VBA项目的帮助系统357
使用语句打开帮助文件357
疑难120如何显示打开文件对话框357
ApplicationGetOpenFilename方法358
FileDialog对象360
FileDialog对象的常用属性360
使用FileDialog对象的属性Filters添加筛选360
FileDialog对象的Show方法和Execute方法361
遍历通过FileDialog对象选择的文件361
ApplicationGetSaveAsFilename方法361
ApplicationDialog对象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
ApplicationSheetsInNewWorkbook属性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
customUIxml428
常用的功能区控件及通用属性428
tabs控件和tab控件429
group控件429
命令控件429
内置控件的ID430
customUIxml中控件和属性的命名规则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
OnError语句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
通用工具的主程序设计
使用加栽宏制作通用工具
加载宏工具的安装
疑难152如何建立调查及数据收集系统
复杂的多功能程序的设计
疑难153如何建立简易的收发管理系统
设计微型数据管理系统
使用同一个窗体操作不同的数据表
类模块中定义过程和函数

序言
感谢您选择“Excel 疑难千寻千解”丛书之《Excel 2010 VBA 入门与提高》!
Excel 具有强大的数据处理能力。由于其操作的便捷性和数据展现的直观性,被越来越多的需要与数据处理打交道的用户所使用。也有越来越多的用户将Excel 作为日常管理中必不可少的工具。Excel 自2003 版本以来至2010 版本,VBA 已经升级为7.0 版本,其功能逐渐被丰富,性能得到了极大的提升。通过使用VBA,可以实现数据的极速处理,让您从繁重的数据工作中脱离出来;通过使用VBA,可以让您方便地实现行政、人事、供应链、财务等方面的基础管理工作。熟练掌握VBA 技术可以极大地提升您的工作效率,让您有更多的时间投入到核心业务中去,为您的职业发展道路提供更多的可能。
本书由153 个实用的案例构成,由浅入深、由易到难地向您展示VBA 在实际工作中的应用。每个案例都配有详细的原理解释、代码注释以及解题思路分析,让您能够轻松掌握VBA编程技术的精髓,以更快地将其中的技术应用到实际工作中。
丛书介绍
“Excel 疑难千寻千解”丛书是由Excel 技巧网(ExcelTip.Net 技术社区)的负责人、微软最有价值专家(MVP)黄朝阳先生策划并组织编写的一套丛书。
Excel 技巧网旨在重点推广Office 2010 及今后更高版本的应用,并为广大的Office 爱好者提供一个内容充实、分类清晰、经典实用、精彩纷呈、互相学习、友好交流的平台。社区成立不久便吸引了众多微软MVP 和有志于推广Office 应用技术的高手驻足,长期为网友免费解答疑难问题,并勤于将精彩的答疑帖子按其所涉及的知识和应用两个维度,整理成为原创技术文章。
社区设有“讨论”、“文章”、“资源”等技术专区,并按照功能划分为Excel 各类功能、Word、PowerPoint、Access 等主题分类,本书正是基于Excel 的VBA 主题分类。
本丛书由黄朝阳、王建发、陈国良、荣胜军、陈树青、李懿、陈少迁等微软MVP,以及罗刚君、李术彬、林盘生、章兰新、薛宇锋、彭佳、任强等多位社区资深版主联手打造,将来还将邀请更多的高级会员加盟参与丛书其他读本的创作。其中,《Excel 2010 操作与技巧》《Excel2010 函数与公式》《Excel 2010 VBA 编程与实践》已于2010 年12 月出版,《Excel 2010 SQL完全应用》已于2011 年8 月出版,《Excel 2010 数据透视表大全》已于2013 年1 月出版,《Word2010 实用技巧大全》已于2014 年1 月出版,本次隆重推出读者期待已久的《Excel 2010 VBA入门与提高》,以满足众多VBA 初学及进阶者的需求,近期还将陆续推出《Excel 2010 图表与图形》等其他读本。
得益于多年来社区答疑的磨砺,作者们将丰富的实战经验付诸笔端,精心设计了上千案例,将Office 方方面面的知识点融入其中。每个案例都采用一般用户遇到疑难时最可能的提问方式和应用场景对问题进行描述,提供具有针对性的解决方案和详尽的操作步骤,并配合以原理分析和知识扩展环节,既授人以鱼,又授人以渔。丛书全系提供“疑难”加“知识点”的特色目录索引,方便读者根据需要快速查找。对于渴望学习和拥有新知识的Office 用户来说,与其千百次地找寻问题答案,不如静心地读此丛书一卷。
读者对象
本书使用Excel 2010 软件进行编写,但是在编写过程中,作者特注重程序的通用性,尽量保证每个案例的解决方案都通用于Excel 2003、Excel 2007 和Excel 2010。
本书通过153 个案例,包含3 个综合应用案例,阐释了VBA 基础编程技术以及其核心的技巧。适合所有的办公人士,特别是需要提升工作效率及需要深入研究VBA 者学习之用。如果您没有VBA 基础,那么本书是一本非常有用的入门级教材,它将由浅入深地向您展现VBA编程技术,帮助您理解VBA 的核心编程技术,并能够在实际工作中使用VBA 提高工作效率。如果您已经有VBA 基础,那么本书是一本帮助您整理知识点并拓展思路的提高教材。本书将向您提供完整的VBA 知识架构、全面的解决方案以及解决问题的思考方法。如果您已经是一位VBA 资深开发人员,本书可以作为您随手的参考书,书中所提供的代码只需要稍作改动,即可应用于实际问题。
阅读指南
本书包括12 章,涉及Excel VBA 的每个方面。其中,第1 章至第4 章为Excel VBA 基础知识。第5 章为问题解决思路。第6 章至第10 章为VBA 的扩展应用,包括数据转换、自定义过程和函数的开发、对话框交互操作、控件和窗体的应用以及自定义功能区。第11 章为程序的错误调试。第12 章为综合开发实战。每章都根据所涉及的知识点的不同,选取了实用的案例,并为读者准备了相应的思考和练习题。
详细的章节内容如下。
第1 章 认识VBA
本章主要介绍如何通过录制宏获取VBA 代码,并且介绍了VBA 的基础知识、基本语法以及基本语句。帮助读者入门VBA 编程,为之后章节的学习提供理论基础。
第2 章 数据的基本处理
本章介绍如何使用VBA 代码对Excel 的单元格以及单元格区域进行操作,其中包括单元格的读取、写入、查找、格式设置等操作,并使用了常见的案例阐述如何使用这些基础操作解决实际问题。
第3 章 VBA 常用函数和语句
本章主要介绍VBA 中常用的函数和语句,并结合前两章所学的知识和案例进一步说明函数和语句的使用方法。
第4 章 多表数据处理
本章说明了跨工作表、跨工作簿进行数据处理的基本方法,以及如何应用事件程序实现Excel 中“自动完成”的功能。
第5 章 数据处理的综合应用
本章是前4 章所学知识点的总结和综合应用,进一步阐述数据处理的解决思路,并引入数组以进一步提高数据处理的速度。
第6 章 数据的转换
本章介绍如何实现Excel 数据与其他数据形式的转换,其中包括如何从Access、文本文件中导入数据,以及如何将Excel 的数据导出到所需的数据格式中。为实现跨数据平台系统的开发提供了基础。
第7 章 自定义过程和函数的开发
本章介绍如何开发自定义过程和函数,并将开发成果应用于工作表,从而教会读者如何将类似的数据处理合并为同一个过程或者函数进行处理,并引用参数传递,使程序更具通用性,为开发更复杂的程序提供必备的技术。
第8 章 Excel 对话框操作
本章向读者介绍如何通过VBA 对话框操作实现Excel 程序与用户间的交互,为实现更好的用户体验提供有力的工具。
第9 章 控件和窗体的应用
本章介绍了如何使用控件和窗体使Excel 程序更专业,并通过使用控件和窗体实现更多丰
富的功能。为打造专业的Excel 程序提供专业的界面设计。
第10 章 自定义功能区
本章介绍如何定制Excel 的功能区,以及功能区控件的基本操作。为设计专用的Excel 程序工作簿提供了可能性,并为Excel 插件的开发提供了便捷的用户交互的窗口。
第11 章 程序的错误调试
本章介绍常见的错误调试的方法以及VBE 提供的程序调试工具,帮助读者自行解决在编程中遇到的各种错误和问题。同时也介绍如何使用错误的自动处理开发完善的程序。
第12 章 综合开发实战
本章以制作通用的工具、调查表及信息收集系统、简易收发管理程序为切入口,向读者展示开发综合型Excel VBA 程序的思路、方法和具体实现的步骤。
为方便读者学习,本书提供了书中实例的源文件
本书约定
为了熟悉本书对鼠标操作、键盘指令等描述方式,从而更顺畅地阅读本书,您有必要了解以下内容。
本书中表示连续的多个菜单指令时,使用右箭头“→”进行连接,例如:单击“开发工具”选项卡→“插入”→“按钮(窗体控件)”,表示依次单击“开发工具”选项卡的“插入”按钮,在弹出的子菜单中选择“按钮(窗体控件)”菜单。
本书中表示鼠标操作时,均使用标准的表示方法。其中“指向”表示将鼠标指针移到对象之上,且不单击任何按钮;而“单击”特指利用鼠标左键单击目标;“右键单击”表示利用鼠标的右键单击对象;“双击”表示快速按鼠标左键两次;“拖放”则表示按下鼠标左键不松开的状态下拖动鼠标,拖到目标区域后再放开鼠标左键。
本书中表示按键时使用括号“【】”号来表示,例如:“按组合键【Ctrl+Shift+Enter】”表示同时按键盘上的Ctrl 键、Shift 键和Enter 键。而“【F5】”则表示按键盘上方的“F5”键。
本书的VBA 代码均不区分大小写,在编写代码时可以随意,但代码录入到代码窗口后,VBA 会将代码自动转换成其内置的大小写形式或者变量声明时的大小写形式,带引号的文本字符串和变量名除外。
本书特点
本书与市场上其他Excel VBA 书籍有很大的不同,文体结构新颖,案例贴近实际,讲解深入透彻。主要表现在以下几方面:
场景式提问
本书从成千上万的网友提问中精心归纳、提炼出各类问题,并还原为贴近真实的求助语言及案例,方便读者搜寻与实际工作相似的问题。
开创式结构
本书案例中的“解决方案”环节是对问题的思路解说,结合“操作方法”环节中的步骤让人更容易理解。“原理分析”环节则主要解释所使用代码的工作原理或者详细解释思路。“知识扩展”环节包括与案例相关的知识点的补充,可拓展读者的视野,同时也有利于理解案例本身的解决思路。
渐进式章节
精心设计的章节和案例,使本书中各章节知识点循序渐进,方便读者巩固已学的知识,又不会因为知识点的缺失而造成阅读和学习的困难。
启发式描述
本书注重培养读者解决问题的思路,以最朴实的思维方式结合启发式的描述,帮助读者发现规律、总结规律和运用规律,从而启发读者快速找出问题的解决方法。
学习方法
本书是VBA 入门与提高的教材,其宗旨在于不但介绍如何编写VBA 程序,更着重介绍如何编写VBA 程序解决实际工作的疑难,以及对同类的问题提供解决思路。
书中前4 章的结构是从易到难,由基础到提高,建议读者顺序阅读,以掌握VBA 以及VBA操作Excel 的基本方法。从第5 章开始,其结构虽然是从易到难,但章节之间相互独立,即可以从任意章节开始学习,不需要遵照从前至后的顺序阅读。
本书配有示例文件,读者需将这些文件放置于D 盘“千寻千解VBA”目录下,方可保证程序正确运行。本书中所有的代码均针对书中案例所编写,不具备通用性,但只需略做修改,即可应用于各类实际问题。书中的代码在Windows 7 中文版和Office 2010 中文版下运行通过。
售后服务
本书由Excel 技巧网(ExcelTip.Net 技术社区)出品,读者在阅读过程中有任何疑难或者建议、BUG 反馈等都可以到社区发帖,包括求助、交流,也可以在本社区下载与本书相关的文档。社区专门为本丛书开辟了一个专区提供编读往来

同时,本书也配备了专门的QQ 群做售后服务,群号公布于上述网页中,读者可以申请加入群中与作者进行面对面的交流。
作者与致谢
丛书从策划到出版,倾注了电子工业出版社计算机图书分社张慧敏、李利健、石倩等多位编辑多年的心血,特在此表示衷心地感谢!
为保证丛书的质量,使其更贴近读者,我们组织了Excel 技巧网的多位版主和高级会员参与了本书的预读工作,他们是欧剑君、高大伟、彭佳、陈少迁、吴旭东、谢永付、颜建忠、关云慧、袁经纬、陈黎明、杨嘉恺、陈树青、钟炼炼、贾祥伟和薛宇锋。感谢各位预读员的辛勤、耐心与细致,使得本丛书能以更加完善的面目与各位读者见面,特别感谢陈树青圆满地组织了本次预读工作。
本书由黄朝阳担任主编,李懿负责编写。王建发、陈国良、罗刚君、李术彬、荣胜军、林盘生、陈树青、陈少迁、任强、彭佳、章兰新参与审校,最后由李懿完成统稿。
尽管作者们对书中的案例精益求精,但疏漏仍然在所难免,如果您发现书中的错误或某个案例有更好的解决方案,敬请登录社区网站向作者反馈,我们将尽快在社区中给出回复,且在本书再次印刷时修正。
再次感谢您的支持!
编著者
2014 年1 月26 日

文摘
版权页:



插图:

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多