Excel 2010 VBA编程与实践.pdf

Excel 2010 VBA编程与实践.pdf
 

书籍描述

编辑推荐
《Excel 2010 VBA编程与实践》:
ExcelTip.net出品
微软全球最有价值专家力作
壁立千寻敢攀登,寻根究底解疑难!

名人推荐
“Excel疑难千寻千解”丛书依托于功能更趋完善的Excel2010版本,用详尽的文字和图片介绍了Excel2010各方面的知识和应用,非常适合初学者和有一定基础的读者进阶学习。书中示例贴近实际,有利于读者将所学知识与自己的工作结合起来,进而提高数据分析能力和工作效率。
——Excelpx.com 站长 赵志东(网名:兰色幻想)

不论是在社区中帮助网友解决问题,还是将Excel 方方面面的知识点归纳整理成书,ExcelTip.Net 一直都做得很好,很有自己的特色!
——Officefans.net 站长 谢汝祥(网名:andyxie)

Excel 的博大精深已令活跃于网络社区中的众多高手深有体会,一直以来人们都在探寻关于Excel 的最佳学习方法和途径,希望通过其获取最新而且实用的Excel 应用技术,相信本书的读者能得到一份这方面的满意答卷。
——微软全球最有价值专家MVP 陈 军(网名:chenjun)

深入浅出的讲解,引人入胜的描述,经典的场景和贴心的知识拓展,多思路并举的操作方法,不知不觉中便使人沉浸于Excel无穷的技巧中,让人钦佩作者的独具匠心和非凡智慧。无论是Excel 新手,或是Excel 高手,相信本书都可给人以耳目一新的感觉。
——微软全球最有价值专家MVP 周建平(网名:守柔)

“Excel 疑难千寻千解”丛书视角独特,贴近用户,由点及面,举一反三,非常适合初学者深入学习,是不可多得的Excel 学习宝典。
——微软全球最有价值专家MVP 杨彬(网名:BIN_YANG168)

虽然我对Excel 2010 已经不陌生了,但打开本书,仍有一种全新的感觉。本书一改Office帮助的那种“菜单式说教”,而是将日常运用过程中经常会遇到的疑难问题一一列出并详加说明解决方案,有的甚至还列出多项解决方案,这无疑给使用者带来巨大的方便。本书不仅可以作为Excel 2010 爱好者学习的自学教材,还可以作为经常使用Excel 2010 办公人士的“解疑字典”,在遭遇“奇怪现象”时可以直接找到解决问题的捷径。
——微软全球最有价值专家MVP 方洁影(网名:小妖)

本套丛书立意新颖,内容充实,按照“提出问题→解决问题→扩展问题”的模式,图文并茂地对大量实际工作中的常见Excel 问题进行了细致的描述和深入浅出的讲解。授人以“鱼”,同时授人以“渔”,适合从基础到高级的Excel 用户和程序员阅读,使您的工作事半功倍,得心应手!
——微软全球最有价值专家MVP 杨志宁(网名:northwolves)

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

作者简介
罗刚君,网名andysky,ExcelTip.net技术社区版主,多个Office技术社区资深版主,从事Excel软件研究与写作多年,精通Excel VBA与函数、图表。在公司担任电脑技术管理,对办公应用有较极丰富的实战经验和心得。目前已经出版过5部Excel相关著作。
章兰新,网名zlxtl,ExcelTip.net技术社区版主,多个Office技术社区资深版主,拥有十多年丰富的政府信息化实践、管理和组织实施经验,精通Excel和MS SQL在管理中的应用。长期在政府财政经济部门实施电脑技术与管理、统计、数据分析相融合的工作,一直致力于推广Excel和数据库技术.对办公应用有极丰富的实战经验和心得。
黄朝阳,网名apolloh,ExcelTiD.net站长,微软全球最有价值专家(MVP)。拥有十多年丰富的企业信息化实践和管理经验,精通Excel和MSSQL在企业中的应用。早期曾在多个Office技术社区担任版主,参与过多部Excel畅销书的编著工作。

目录
第1章 基础理论 1
1.1 快速获取帮助1
疑难1 如何获取所有控件的属性及属性值1
前期绑定与后期绑定4
疑难2 部分对象在输入时没有成员列表提示,如何解决5
没有成员列表的对象6
疑难3 如何找出错误语句及获取错误原因并发送到开发者邮箱6
利用 ShellExecute 函数调用程序的方式8
1.2 程序防错要点8
疑难4 程序出错有哪些原因9
常见错误分析9
疑难5 如何获取VBA 所有运行时错误的详细说明10
通过 Error 函数获取错误信息12
疑难6 如何在执行完毕后报告出错次数及原因13
捕捉所有错误信息14
疑难7 如何开发完善的程序15
数组区域对 VBA 程序的影响17
疑难8 防错语句在程序或者函数中应用有哪些优势17
利用 Err.Number 属性判断错误类型19
1.3 代码优化之道19
疑难9 如何优化过程“隐藏偶数行” 19
关闭 ScreenUpdating 提升程序效率20
疑难10 如何优化过程“设置字体属性” 21
利用 With 简化对象引用22
疑难 11 如何优化过程“隔三行求和” 22
减少单元格的写入次数提升程序效率 23
疑难12 如何优化过程“B 列所有图片右移” 23
有针对性地使用 Select 方法24
疑难13 如何优化过程“建工作表目录” 25
VBA 中数组的作用26
疑难14 如何优化过程“成绩评语” 26
区分适合置于循环体中的语句27
疑难15 如何优化过程“删除空单元格所在行” 27
不用循环而选择多个符合条件的单元格 28
疑难16 如何优化过程“批量修改批注背景色” 28
区分父对象与子对象29
疑难17 如何优化过程“隔一行插入一行” 30
计算模式对程序效率的影响31
疑难18 如何优化过程“获取外网IP 地址31
使用变量的条件32
1.4 提升代码的兼容性32
疑难19 程序的兼容性体现在哪些方面33
操作系统对 VBA 的影响33
疑难20 如何让程序适应不确定对象34
使用动态区域引用让代码具有更强的通用性 37
疑难21 如何让程序兼容Excel 多版本37
识别 Excel 的版本号39
疑难22 如何让程序兼容英文和中文系统40
利用 API 函数识别简体、繁体中文与英文41
疑难23 如何让程序兼容简体与繁体中文41
让代码适应简体与繁体系统42
1.5 练习与思考42

第2章 查找引用 44
2.1 本表查找44
疑难24 如何查找不及格学生姓名并突出显示44
利用 Union 方法合并多区域46
疑难25 如何一次性罗列表中三省员工的姓名47
Find 方法的使用技巧49
疑难26 如何在输入时逐步查找50
通过 KeyUp 事件自动执行查询52
疑难27 如何按指定的格式查找53
FindFormat 的使用技巧54
疑难28 如何实现字体格式替换54
替换格式的条件55
疑难29 如何查找所有“#”并标为上标56
区分上标、下标的应用对象57
疑难30 如何找出还款时间超过一年及未还款的客户信息57
日期函数 Datedif 的特性59
疑难31 可以将查找到的所有数据串连并写入剪贴板中吗59
引用“Microsoft Forms 2.0 Object Library”的两种方法60
疑难32 可以创建一个工具栏来方便查找吗61
设置 lookat 参数实现模糊查找63
疑难33 如何快速罗列出每个产品最新报价63
Collection 对象的应用技巧65
疑难34 如何在具有合并单元格的区域中多条件逐步查找65
通过“MergeArea”属性返回合并区域67
疑难35 如何查找成绩并分批发邮件67
VBA 中发编写邮件正文时的换行符的表示法68
2.2 跨表及多表查找69
疑难36 如何引用数据表创建多级下拉菜单69
“ActionControl”对象的功能与限制72
疑难37 如何将所有表中查找的完成数汇总到总表73
利用 SpecialCells 定位实现快速查找74
疑难38 在窗体中罗列每月产量冠军名单74
不采用循环,一次性找出最大值所在行 76
疑难39 如何将具有外部数据引用的单元格转换成值76
通过“[]”和“’!”定位具有外部链接的公式77
疑难40 如何让链接到其他表中隐藏单元格的超链接生效77
通过 xlSheetVisible 属性切换工作表显示状态78
疑难41 如何实现多部门电话资料模糊查询79
Target 与Activecell 的区别80
疑难42 如何实现所有未收货款者在状态栏随机显示80
利用 OnTime 定时执行程序82
2.3 文件查找与转换82
疑难43 如何判断指定文件是否存在82
利用 DIR 函数判断文件是否存在83
疑难44 如何进行深度查找且创建文件目录84
FileDialog 对象的应用85
疑难45 如何查找并备份所有“3 月生产表” 86
CopyFile 方法对文件复制88
疑难46 如何将所有Excel 文件转换成XPS 或PDF 文件88
利用 PrintOut 方法将工作表转换成XPS 文件90
疑难47 如何在网上邻居的共享盘中查找并打开“单价表91
利用 FileExists 方法判断文件是否存在92
疑难48 如何实现全盘查找“上海滩.MP3”,有则自动翻放92
播放音乐的三种方式94
疑难49 如何在网上自动搜索与当前单元格同名的歌曲并播放95
利用网页地址索引歌曲并自动播放 96
2.4 图片查找与引用96
疑难50 如何瞬间删除当前表中所有图片96
DrawingObjects 与Shape 对象的区别97
疑难51 可以将签名图片复制到表中所有签名处吗97
复制图形对象与复制数据的区别 98
Selection 代表什么99
疑难52 如何像vlookup 引用数据一样引用图片99
对图片设置公式引用其他图片101
疑难53 如何通过窗体预览指定目录中的所有图片101
通过 LoadPicture 函数加载图片103
2.5 练习与思考103

第3章 数据处理 104
3.1 定位的技巧104
疑难54 如何选择当前表0~100 之外的数据104
使用定位技术减少循环语句的循环次数 105
疑难55 如何定位奇数行105
MOD 配合SpecialCells 定位奇数行106
疑难56 可以瞬间定位并隐藏所有错误值吗107
通过 SpecialCells 定位错误值108
疑难57 如何在输入数据时自动定位下一行的目标单元格109
限制删除单元格的数据时不触发工作表的 Change 事件110
疑难58 可以将标题以外的区域转换成“万”为单位吗110
VBA 中如何处理双引号111
疑难59 如何定位当前表最大值和最小值112
调用工作表函数并配合 Find 方法查找最大值113
疑难60 能定位并标识高于平均值的单元格吗113
VBA 中数字、汉字的大小关系115
疑难61 如何反向选择工作表区域115
辅助区的重要性116
3.2 数据处理及格式转换116
疑难62 如何将单词在大写、小写与首字母大写间任意切换116
利用 StrConv 函数对英文进行大写、小写和首字母大写转换117
疑难63 如何将二维的入库表转换成一维排版方式118
利用数组提升代码执行效率119
疑难64 能否不用循环对选区进行横向与纵向汇总120
“R1C1”引用方式的优点121
疑难65 如何批量地将字符串中的字母、数字和汉字分离出来122
利用 Like 运算符区别汉字、数字和字母123
疑难66 可以将表达式转换成运算结果吗124
通过 Evaluate 计算表达式125
疑难67 如何快速填充所有空单元格125
利用 Intersect 引用区域提升代码通用性126
疑难68 如何将产品销售地区瞬间转换成下拉列表126
利用代码设置有效性序列127
疑难69 数据有效性可以设置三级关联下拉列表吗128
利用 Dictionary 对象获取唯一值130
疑难70 可以对职员信息表按学历排序吗130
新旧版本中 Sort 的差异131
疑难71 可以不打开工作簿而提取其数据吗132
VBA 中调用公式实现从未打开的工作表中取值133
疑难72 如何保护所有公式不能修改134
切换 Locked 属性实现公式保护135
疑难73 如何实现金额数据分解135
MID 取文本的特点137
疑难 74 VBA 可以破解工作表密码吗137
表的分类 138
疑难75 如何对分段编号进行合并转换138
减少数组变量空间分配次数的方法 140
疑难76 如何将5 个大小相同选区的数据互换141
Areas 与CurrentRegion 的区别142
疑难77 如何取得1000 之内的质数142
质数的特性143
疑难78 可以生成指定范围的不重复随机数吗144
Collection 对象的优势145
疑难79 如何利用VBA 对工作簿进行减肥145
正确删除单元格,减少文件体积 146
疑难80 如何让数字在文本与数值之间快速切换147
在文本与数值间切换的 VBA 思路148
疑难81 如何将“/”分隔的数据进行汇总149
以“/”为分隔符取其左右字符的思路优化150
疑难82 可以对指定区域进行自动更正吗150
利用 Replace 方法实现限定区域的自动更正151
疑难83 可以对包括“星期”的所有工作表同时添加公式吗151
VBA 在单表和多表中输入公式的区别152
疑难84 在VBA 中如何控制字符朗读153
利用 Speech 朗读字符153
疑难85 能实现粘贴数据时跳过隐藏区吗154
如何确定单元格是否隐藏156
疑难86 如何对相同值进行标识着色156
疑难87 如何根据工资计算零钞数量159
获取选区第一列及已用区域的交集 160
疑难88 如何批量实现区域数据真正四舍五入161
通过 round 解决数据显示的假象162
疑难89 如何优化具有大量公式引用的数据计算163
公式与 VBA 在计算上的区别164
ClearContents 与Clear 的区别164
3.3 单元格合并技巧164
疑难90 可以在表格中合并同类项吗165
利用 DisplayAlerts 属性关闭合并单元格的提示及加快执行速度166
疑难91 如何实现按产品合并产量数据表166
利用变量暂存数据,代替辅助区 168
疑难92 如何实现合并时保留所有数据,而拆分时可以还原168
看不见的特殊字符的应用171
疑难93 可以选择当前表所有合并单元格吗171
定位合并单元格172
疑难94 如何取消所有合并区域并且对所有单元格填充数据172
合并区域的赋值方式174
疑难95 合并单元格后仍然可以正常引用区域中的所有值吗174
复制合并属性175
疑难96 如何将指定单元格合并链接到一个选区175
对一个区域追加链接177
疑难97 跨页合并单元格可以重新合并从而适应分页打印吗178
判断合并单元格是否跨页179
疑难98 可以让合并单元格自动换行吗180
工作表事件代码与普通过程的区别 181
3.4 报表合并与拆分181
疑难99 如何合并所有工作表到一个表中182
让复制数据时既去除公式又不影响数值的显示状态 183
疑难 100 如何实现多表合并汇总184
利用相对引用公式批量合并数据,避免使用循环 185
疑难 101 如何将多个工作簿中的所有工作表合并到一个工作表中186
通过禁用工作簿重算提升代码效率 189
疑难 102 如何将多个工作簿数据合并到一个工作簿中189
利用变量作为辅助进行条件判断 193
疑难 103 如何实现报表拆分193
利用复制格式和复制数值实现完美复制,避免复制后显示错误195
疑难 104 如何将工作簿中每个工作表转换为独立工作表197
根据版本号决定文件格式198
3.5 单元格颜色的综合应用199
疑难 105 Excel 不同版本在颜色处理方面有分别吗199
不同版本中颜色差异对程序的影响 200
疑难 106 可以对Excel 2010 的按颜色筛选再做扩展吗201
CurrentRegion 与Usedrange 对程序的影响204
疑难 107 如何让按颜色排序可以在Excel 多版本间通用204
借用辅助和调用老版本的 Sort 功能提升程序的通用性206
疑难 108 如何将颜色分类重排且通用于Excel 多个版本206
将颜色属性转换成数据,辅助程序执行 208
疑难 109 可以按颜色对选区数据分类汇总吗208
修改数据源与修改颜色在 VBA 事件中的差异211
疑难 110 如何用函数对数据背景和字体按颜色汇总212
通过 Volatile 让函数声明为易失性函数213
3.6 重复数据处理213
疑难 111 如何清空重复值单元格并标识214
Countif 函数在去重复值中的应用215
Countif 函数的限制216
疑难 112 可以对重复出现的数据进行圈释吗216
利用 CircleInvalid 对单元格加圈,以及CircleInvalid 的限制217
疑难 113 如何筛选唯一值218
使用错误处理语句配合 Collection 取唯一值219
疑难 114 可以在输入重复值时提示用户吗219
通过 EnableEvents 提高程序的执行效率220
疑难 115 如何对两列数据提取相同项与不同项221
利用 Transpose 函数实现区域转数组222
疑难 116 如何将多行多列相同者保留最后一个数据223
双层 Transpose 配套Join 实现横向区域转字符串224
3.7 数据透视224
疑难 117 如何按职务或部门进行工资数据的透视分析225
利用 Excel 2003 的透视表代码提升程序兼容性226
疑难 118 如何实现多重数据透视227
利用 Array 嵌套创建多重透视228
XXII
疑难 119 如何实现同时透视多工作簿中的多工作表数据229
解决 VBA 创建透视表名称冲突的两种方法230
3.8 练习与思考231

第4章 报表打印 232
4.1 打印设置232
疑难 120 如何一次性设置“总表”以外工作表的页脚232
选择工作表数量对页脚的影响233
疑难 121 如何设置所有工作表的已用区域为打印区域233
设置打印区域对数据打印的影响 234
疑难 122 可以记录工作簿的打印次数吗235
借用文件自定义属性记录打印次数 235
4.2 特殊打印格式设计236
疑难 123 如何设计工资条打印格式237
借用辅助列提升程序的容错性240
疑难 124 如何打印工资卡240
引用普通工作簿和加载宏工作簿的区别 243
疑难 125 VBA 可以实现对工作表分页小计吗243
利用宏表函数 Get.Document(50)获取工作表页数246
疑难 126 如何同时打印顶端标题和底端标题行246
计算第一个分页符的所在行号253
疑难 127 可以借用图片实现底端标题打印吗253
Export 与API 方式将区域转换成图片的差异255
疑难 128 如何制作针式多联打印机打印格式的报表256
利用 HPageBreaks.Add 实现手动分页258
疑难 129 如何实现双面打印259
中断与禁止中断程序260
疑难 130 可以仅仅打印活动单元格所在页吗260
利用 Location 计算分页符位置,配合循环判断当前页序号261
4.3 练习与思考262

第5章 函数开发 263
5.1 自定义函数基础263
疑难 131 如何开发自定义函数263
Office 版本对自定义函数参数的影响267
疑难 132 函数与参数名规则如何267
自定义函数命名规则267
疑难 133 自定义函数在不同版本中有何差异269
颜色对自定义函数的影响271
5.2 开发自定义函数271
疑难 134 如何对区域内混杂字符串中的数字求和271
Excel 公式对连续“+”的处理方式273
疑难 135 如何分离字符串中的数值、英文和汉字273
正则表达式在字符处理中的优势 274
疑难 136 如何将文本混杂字符串及表达式转换为值274
正则表达式中数字、汉字的表达方式 276
疑难 137 如何按时间段计算汇总金额277
根据计算对象的规范性决定函数参数的个数 278
疑难 138 如何对具有分隔符的数据分类汇总279
Split 函数产生的数组的特点280
疑难 139 可以取姓名的汉语拼音首字母吗280
汉字与拼音首字母的对应关系282
疑难 140 超过15 位的数字如何求和282
Excel 对数据计算的长度限制284
疑难 141 可以扩展Vlookup 函数实现返回多个结果吗284
利用 Find 替代Vlookup 实现多个数据查找285
疑难 142 如何利用函数创建文件目录286
自定义函数中如何表示活动单元格 287
疑难 143 可以用函数连接内存数据和区域中所有文本吗288
利用 ParamArray 声明不确定个数的函数参数290
疑难 144 如何根据身份证号码获取出生日期、年龄和性别290
身份证号码所包含的个人信息292
疑难 145 如何将多个单元格中的人民币数字合并且转为大写金额293
声明正确的类型优化函数效率294
疑难 146 如何计算两个区域的不同项294
自定义函数对大区域运算的限制 296
疑难 147 如何突破Rank 函数排名的限制296
去重复值的 3 个方法297
疑难 148 如何实现按数据出现次数排序298
Collection 与字典的区别300
疑难 149 可以用一个函数将人民币大小写相互转换吗300
通过拆分法理解代码302
疑难 150 可以用函数改变引用区域的值吗303
利用自定义函数修改引用区域的值的两种方法 305
疑难 151 如何对两个以逗号分隔的乱序字符串比较异同306
Split 函数嵌套应用从字符串中分别获取品名与数量307
疑难 152 可以利用函数添加数据监控吗308
借用函数的易失性实现自动执行,类似于工作表事件309
疑难 153 可以让函数的两个参数全是可选参数吗310
将单个参数声明为可选参数的方法 311
疑难 154 可以利用函数批量对工作表命名吗312
借用类模块将工作簿级事件提升为应用程序级事件 314
疑难 155 如何让自定义函数运算结果是一个数组314
函数返回数组的条件316
5.3 自定义函数的管理316
疑难 156 如何对自定义函数添加说明316
通过 MacroOptions 定义函数的帮助信息318
疑难 157 如何对自定义函数的参数添加帮助318
借用 REGISTER 为自定义函数添加参数说明及分类321
疑难 158 可以将加载宏中的自定义函数复制到活动工作簿吗322
判断用户的设置是否允许访问 VBA 工程325
疑难 159 如何封装自定义函数,使其代码不可查看325
利用 VB 6.0 企业版封装自定义函数328
5.4 练习与思考328

第6章 文件目录 329
6.1 文件管理329
疑难 160 可以实现文件双向备份吗329
利用 SaveCopyAs 备份文件330
疑难 161 如何让文件使用一次后即自我销毁331
文件“自杀”的条件331
疑难 162 文件有哪些属性,如何控制它们332
GetAttr 函数搭配and 运算符判断文件是否具备某属性333
疑难 163 如何删除指定目录中一年前创建的文件334
疑难 164 可以删除18 个月没有使用的文件吗335
用 DATEDIF 计算文件闲置时间的技巧336
疑难 165 如何对文件批量重命名336
获取文件名的方法338
疑难 166 可以在收藏夹中对当前工作簿创建快捷方式吗338
获取收藏夹地址的方法339
疑难 167 文本文件与Excel 如何批量转换341
文本文件与工作表的相互转换342
疑难 168 如何实现将指定文件作为附件发送邮件343
Outlook 的前期绑定与后期绑定344
6.2 目录管理345
疑难 169 如何瞬间删除D 盘中所有空文件夹345
将代表磁盘的字符串转换成磁盘对象的方法 346
疑难 170 如何获取C 盘以外所有磁盘的文件目录列表346
通过 FSO 对象判断某磁盘是否存在347
疑难 171 如何让多版本Excel 可以随心所欲选择打开方式348
将 Excel 快捷方式导入“Sendto”文件夹349
疑难 172 如何批量创建以本月每日日期命名的文件夹350
利用 DateSerial 的纠错功能计算本月天数351
6.3 练习与思考351

第7章 图表设计 352
7.1 图表编辑352
疑难 173 如何利用快捷键对选区创建图表352
对宏指定组合键的方式及特点355
疑难 174 如何批量修改图表标签355
操作图表标签的条件359
疑难 175 如何批量移位标签359
移位图表标签的限制362
疑难 176 如何对图表系列设置条件格式362
填充图表系列的两种方法365
7.2 多表管理366
疑难 177 如何将所有图表大小调整一致且对齐366
图表名称的特点367
疑难 178 如何将所有图表转换成JPG 文件保存到文件夹368
将图片转换为图片的思路369
7.3 练习与思考369

第8章 图形对象 370
8.1 图形对象的基本操作370
疑难 179 可以仅仅删除E 列存放的图表以外的图形对象吗370
通过 TopLeftCell 和BottomRightCell 定位图片位置371
疑难 180 如何将工作簿所在路径的图片全部导入工作表371
Pictures.Insert 与Shapes.AddPicture 的分别373
疑难 181 如何让所有图形对齐所在单元格左边框374
通过统一 TopLeftCell 属性对齐图片374
疑难 182 如何实现所有图片刚好适应所在单元格大小与边距375
行高与列宽的特点376
疑难 183 如何将选区转换成图片并保存到桌面377
借用图表中介实现区域转图片379
8.2 批注的高级应用379
疑难 184 如何利用快捷键在单元格插入当前日期的批注379
通过设置 AutoSize 属性使批注框自动调整大小380
疑难 185 如何将指定列的数据批量追加到批注中381
强制返回选区第一列的 3 种方法383
疑难 186 如何实现指定区域批量创建历史记录于批注中383
让代码应用于所有工作簿的方法 386
疑难 187 如何批量导入图片到单元格的批注中386
对批注框设置背景的条件388
疑难 188 可以对批注进行替换吗388
“Unload Me”、“End”和“Exit Sub”的区别391
疑难 189 如何在所有批注末尾追加当前日期391
利用 Isdate 判断批注最后一行是否为日期392
疑难 190 如何批量修改批注的外观392
声明正确的变量类型及防错394
疑难 191 可以改造默认的插入批注功能吗394
正确引用右键菜单395
8.3 图形对象综合应用396
疑难 192 可以让图片跟随鼠标移动吗396
利用 DoEvents 函数展示动画过程398
疑难 193 如何创建图片目录与批量插入图片398
单元格的行高与列宽限制401
疑难 194 如何利用窗体预览图片402
控件背景图片的 3 种显示方式404
疑难 195 VBA 中的窗体能否转换成图片保存在工作表中404
调用 API 函数调用截图的快捷键405
疑难 196 可以在工作表中导入GIF 动画吗406
播放 GIF 文件时不能将文件嵌入工作表408
疑难 197 如何实现输入品名时查看当前路径中的同名图片408
利用 API 计算图片文件的长与宽409
疑难 198 可以让鼠标指定图片时放大图片吗410
利用 API 函数获取鼠标指针坐标413
疑难 199 如何实现图片批量导入并自动排版打印413
利用 FSO 技术中的Getextensionname 获取文件后缀名417
8.4 练习与思考417

第9章 窗体控件 418
9.1 ActiveX 控件应用418
疑难 200 可以利用列表框强化数据有效性吗418
列表框相较数据有效性的灵活性 420
疑难 201 如何利用复合框引用区域的唯一值421
复合框调用数据的两种方法及各自优势 423
疑难 202 利用复合框和列表框实现二级列表423
MouseMove 事件获取列表框的值的技巧426
9.2 窗体设计技巧426
疑难 203 如何实现利用快捷键启用和关闭窗体426
KeyPress 事件可以检查的按键及例外项目428
疑难 204 如何用一个窗体展现多个不同内容429
分页显示的两种方法432
疑难 205 如何用一个按钮执行多个功能433
利用 PasswordChar 属性隐藏敏感字符435
疑难 206 如何让日期输入器窗体紧跟活动单元格435
影响窗体 Left、Top 属性的因素436
疑难 207 如何设计五角星窗体437
显示五角星窗体的方法440
疑难 208 VBA 可以设计彩蛋吗440
MouseUp 事件中Shift 参数的作用442
疑难 209 如何通过窗体控制实现工作表隔行插入行442
通过 Shift 参数控制Insert 方法的单元格移动方向446
疑难 210 如何在窗体中开发右键快捷菜单446
创建自定义菜单的基本思路448
疑难 211 窗体可以利用鼠标自由调整大小吗449
利用 API 让窗体可以自由拖动的思路449
疑难 212 在窗体Show 状态下可以调整控件大小吗450
MouseMove 事件中各参数的作用452
疑难 213 在窗体Show 状态下如何批量设置控件格式452
可修改控件字体格式的几种对话框 454
疑难 214 在窗体Show 状态下如何调整控件位置455
MouseMove 事件中Button 参数的应用技巧456
疑难 215 如何检测窗体中文本框的数据有效性456
对文本框设置数据有效性检验的优势 457
疑难 216 如何设计悬浮感应式窗体458
通过调整边距控制窗体的动态效果 460
疑难 217 可否瞬间备份所有窗体460
VBA 工程中的子对象分类461
疑难 218 能否对窗体中所有控件同步缩放462
窗体的 Zoom 属性的特点464
疑难 219 能否通过代码生成窗体及控件464
用代码操作代码、窗体和模块的优缺点 466
9.3 窗体与工作表之数据交互467
疑难 220 可以实现多工作表筛选并将结果导入窗体吗467
列表框的 ColumnHeads 属性的特点469
疑难 221 多工作表数据输入窗体如何设计469
利用 SetFocus 方法控制焦点的转移472
疑难 222 如何开发日历工具箱472
Excel 对日期计算的限制476
疑难 223 如何实现多条件电话查询476
“TextBox1_Change”事件与“TextBox1_Exit”事件的异同478
疑难 224 如何开发复选框批量管理工具478
认识复选框481
疑难 225 如何让窗体控件自适应工作表数据变化481
用代码创建新控件483
疑难 226 可以让列表框具有拖放功能吗484
本例仅支持一次拖放一行数据486
疑难 227 如何开发四则运算自动出题机486
通过 Rnd 函数产生指定范围的随机数488
9.4 开发动画窗体489
疑难 228 如何让窗体中的文本框循环滚动489
控制动画速度的两种方式491
疑难 229 窗体中可以播放GIF 和Flash 动画吗491
Excel 播放GIF 的原理493
疑难 230 如何让窗体产生百叶窗动画493
疑难 231 如何设计精美边框且带动感的窗体495
网页设计与 VBA 496
疑难 232 如何设计动态的启动画面497
网页动画的基本语法499
疑难 233 如何让窗体中产生跟随鼠标指针的文字动画500
VBA 设计动画的限制501
9.5 练习与思考501

第10章 插件开发502
10.1 定制菜单与工具栏、功能区502
疑难 234 如何定制新菜单、工具栏与功能区502
加载宏的特性与安装方法506
疑难 235 可以任意组合内置命令吗507
CommandBars 对象的ID 参数的作用508
疑难 236 如何改造内置命令的功能509
修改 OnAction 属性替换内置功能510
疑难 237 可以提取所有内置图标及其编号吗511
ActionControl 属性的作用513
疑难 238 可利用菜单控制分页符、零值和批注的显隐吗513
Excel 不同版本的自启动路径515
疑难 239 如何仅仅利用菜单创建工作表目录516
让一个过程执行多个菜单执行多个功能的方法 518
疑难 240 如何让菜单具有感应功能518
State 属性的特点与应用520
疑难 241 如何让菜单和功能区中显示自己的照片521
疑难 242 如何设计可单选与复选的新工具栏菜单525
具有单选与复选特效的图标组合 528
10.2 开发通用插件528
疑难 243 如何开发定位工具箱扩展Excel 定位的功能528
疑难 244 如何开发通用的多区域复制插件534
疑难 245 如何开发单元格批量合并插件535
操作大面积区域时利用警告框提示用户 538
疑难 246 可以利用插件输入常用VBA 代码吗538
计算当前代码行的行号542
疑难 247 如何利用插件删除当前工作簿所有代码543
ActiveWorkbook 与Thisworkbook 的分别544
疑难 248 如何利用TreeView 控件打造工作簿浏览器545
ImageList 控件的特点与作用547
10.3 封装DLL 插件548
疑难 249 如何封装数值与文本互换的DLL 插件548
使用 VB 6.0 封装Dll 的4 个重点554
疑难 250 如何设计字符串分离与表达式计算插件555
利用 VB 开发功能区的优势563
10.4 练习与思考563

第11章 工资管理系统564

序言
Excel 2010具有强大的运算与分析能力。从Excel 2007开始,改进的功能区使操作更直观、更快捷,有了质的飞跃。本书以Excel 2010为版本介绍其新功能区下的操作方法和应用技巧,可助您在日常办公中获得更高的工作效率。
与黄朝阳站长和Excel技巧网是在年初通过微软社区精英计划而结识的。微软社区精英计划是微软为了协助国内在技术社区上有一定影响力的社区或个人,或是愿意为国内信息技术做出贡献的社区或个人而设立的培训与支持计划,同时也是配合国家培育人才的政策而成立的。很高兴看到黄朝阳与Excel技巧网能将这些有用的信息集结成书,让更多的人受惠。也很开心看到微软社区精英计划里的社区组织与意见领袖们能有此成就。
下面有四个如果,如果您正好符合其中一个,您可以考虑在书店里找个安静的角落享受一下,或者是带回家仔细品尝。
如果您还认为Excel只是一个试算表或是办公室软件,那么我会建议您阅读此书,让您将Excel的使用价值提升到另一个高度。
如果您是长期使用Excel的老手,应该不难发现Excel已不再是试算表的概念。经过微软研发团队多年来不断地收集与汇整用户反馈后,集成了中小型企业及大型企业乃至于个人用户的不同需求,并将商业智能(Business Intelligence)巧妙地结合进来,通过此书,希望您能发现更多Excel的应用技巧,提高您的使用技能。

文摘
插图:

Excel 2010 VBA编程与实践

内容简介
《Excel 2010 VBA编程与实践》是“Excel疑难千寻千解”丛书之一,为读者展示VBA编程的实战技巧,包括工作中的疑难处理方案、自定义函数技术、代码封装技术、功能区设计技术,以及插件开发实战与原理分析。《Excel 2010 VBA编程与实践》侧重于“解决问题”,主要展示诸多常见疑难的解决方案。阅读《Excel 2010 VBA编程与实践》,可以解决工作中的诸多疑难杂症,大大提高工作效率,且有助于提升编程能力、拓展思路,将理论向实战迈进。
《Excel 2010 VBA编程与实践》有一个贯穿全文的思想:让代码同时具备准确、纠错、兼容和效率四个特性,所以《Excel 2010 VBA编程与实践》所有案例都在准确性与高效性的基础上提供完善的错误处理措施与思路讲解,且所有案例都通用于Excel 2003、2007和2010。作者使用Excel 2010界面写作,但代码在多个版本中都可以正常运行,不需要任何修改。
《Excel 2010 VBA编程与实践》包括251个案例,最后一个是VBA的大型综合应用—开发工资管理系统。书中每个案例采取疑难描述、解决方案、操作方法、原理分析、知识扩展五个步骤进行讲解,力图解决问题之外还让读者可以通晓其思路和原理。
《Excel 2010 VBA编程与实践》配合《Excel VBA程序开发自学宝典》学习会有更好效果,该书侧重于VBA的基础理论教学,而《Excel 2010 VBA编程与实践》则侧重于解决实际问题,属于该书配套的进阶应用。前者学习理论与语法,而通过《Excel 2010 VBA编程与实践》学习思路与技巧。
《Excel 2010 VBA编程与实践》既适合Excel VBA用户参考学习,又可以作为大中专院校或者企业的培训教材,同时对于在数据处理与分析方面有实践经验的用户也有较高的参考价值。

购买书籍

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

PDF电子书下载地址

相关书籍

搜索更多