Excel VBA程序开发自学宝典(第4版)
  • 推荐0
  • 收藏1
  • 浏览962

Excel VBA程序开发自学宝典(第4版)

罗刚君 (作者) 

  • 书  号:978-7-121-41435-0
  • 出版日期:2021-07-13
  • 页  数:524
  • 开  本:16(185*260)
  • 出版状态:上市销售
  • 维护人:张慧敏
纸质版 ¥119.00
《Excel VBA 程序开发自学宝典(第 4 版)》是 VBA 入门与提高的经典教材。全书包含基础知识部分和高级应用部分。其中,基础知识部分包含 VBA 的基础理论、常用语句解析、综合应用、编程规则与代码优化等,提供了详尽的理论阐述和案例演示。高级应用部分包含数组、正则表达式、字典、设计窗体、VBA 与注册表、处理文件及文件夹、开发自定义函数、ribbon 功能区设计、与Word/PPT 协同办公,以及开发通用插件等专业知识。
本书基于Excel 2019 撰写,不过代码可在Excel 2010、Excel 2013 和Excel 2016 中通用。如果你的Excel 版本不是2019 也可以不用升级,可以直接阅读本教材,按步骤操作即可。
本书是《Excel VBA 程序开发自学宝典(第3 版)》的升级版,在升级过程中做了大量的修改,包括调整章节顺序、舍弃部分实用性不好的内容、删除一些已经淘汰的技术、增加全新案例和章节等,特别是讲解了Excel VBA 与Word、PPT 的协同办公知识,有必要认真学习。本书附赠案例源文件和案例源代码,以及复杂案例的演示视频。
VBA 入门与提高的经典教材,附赠案例源文件和案例源代码,以及复杂案例的演示视频
自序
如何学习VBA

VBA 是什么
VBA 是依附在Excel 中的二次开发语言,全称为“Visual Basic For Application”。VBA 已有
20 多年历史,截至本书完稿时最新版本是7.01,其开发环境和语法已趋于完善。
VBA 不仅是Excel 的二次开发平台,同时还大量应用在其他软件中,包括自动计算机设计软件AutoCAD、平面设计软件CorelDraw、文字处理软件Word、网页设计软件FrontPage、项目管理软件Project、办公软件WPS 等。VBA 的应用前景相当广阔。

学习VBA 有用吗
这是很多网友问过笔者的问题,其实答案只有一个——任何软件都有用,只看你学到了什么
程度。绝大多数软件都能提升工作效率,以及带来经济效益,但前提是学得足够好,以及用得恰到好处。当然,也可以换一种方式回答:别问有没有用,你有几分耕耘呢?
?
学习VBA 的必要性
VBA 能做什么?是否有必要学习?VBA 有很多事都不能做,例如不能开发独立的应用程序、
不能开发ERP 系统、不能实现网页设计、不能防御计算机病毒等,但是在它的专业领域可以实现诸多令人惊奇的功能,常常让人感叹:原来表格制作可以这么快捷!

在工作中你是否有很多需求是Excel 做不到的?比如底端标题、隔N 行插入M 行、批量转
换金额大小写、批量生成产品标签等。
Excel 的某些内置函数你是否一直不满意?例如,无法计算当前页的页码;Vlookup 函数只
能返回第一个找到的对象;SUM 函数不能实现按颜色汇总,也不能对超过15 位的数据求和,等等。上述所有问题都可用VBA 轻松解决。
当然,VBA 更重要的应用在于开发插件、设计运算系统(如财务报表、人事管理系统、仓库
进销存等),以及与Word 协同办公。当VBA 的功能发挥到极致时,很多平常需要数小时的计算工作,VBA 能在一两秒钟内完成。“秒杀”对于VBA 而言如家常便饭。

学习VBA 的基础
学习VBA 需要会英语、需要懂VB 或者C#语言,这是笔者与网友们在交流中听到的最多的
一种说法。其实不然,VBA 与英语没有太大关系,一个不会英语的人也可以学好VBA,就像笔者自己,在完全不懂英语的情况下自学了6 个月,就掌握了VBA 的初、中、高级应用,至今已经出版了11 本与VBA 相关的图书。
当然,懂英语对学习VBA 是一个辅助条件,可以看懂一些英文的参考资料,但绝不是必要
条件,国内的VBA 资料已足够丰富。
VB 和C#语言是否是学习VBA 的基础条件呢?当然也不是。不过懂VB 或者C#语言对于学习VBA 是有帮助的,主要体现在编程的理念和思路上。一个VB 或者C#编程高手必定已经养成程序员的严谨和逻辑性强等良好习惯,这种习惯和思维对学习VBA 有较大的帮助,但并非VB 和C#语言本身构成了学习VBA 的基础条件,它们所涉及的对象大不相同。一个C#专业程序员转学Excel VBA 仍然需要逐个学习Excel 的对象、属性和方法,没有捷径可走。
那么学习VBA 的基础究竟是什么呢?笔者的看法是:了解什么是单元格、工作表、工作簿,
会使用查找与替换、条件格式、定义单元格格式等功能,懂得排序、筛选、打印预览、插入图形对象、分列、创建图表等操作。当然,还需要认识26 个英文字母。简单吗?是的,学习VBA 的基础条件就这些,如果你都会,那么祝贺你已步入VBA 潜在用户之列。
当然,若要成为好的程序员,还需要有好的耐心、周密的思维能力、充分的逻辑性,以及举
一反三的能力等。

学习VBA 需要背英文单词吗
当然不需要。举一个例子:100 以内的加减法基本人人皆会吧?会计算100 以内的加减法是因为背下了100 以内的所有加减法表达式的答案,还是因为掌握了加减法运算方法呢?
1+1,1+2,1+3,1+4…2+2,2+3,2+4…也就是说,仅100 以内的加法表达式就有5000 多个,
减法表达式也有5000 多个,还不包括小数。把这么多题目的答案背下来是不可能的事,但是懂得运算方法后要快速地得到100 以内的加减法答案却是极容易的事。

掌握了方法,一通百通。学习VBA 同样也是这个道理。

如何发挥VBA 的潜能
VBA 的理论不多,但是极其重要,是解决VBA 问题的基础。学习VBA 需要深入理解VBA 的对象、属性、方法、事件,以及它们的调用方式,之后则可以一通百通。
本书有三分之一的篇幅展示VBA 的基础理论,三分之一的篇幅罗列应用案例,三分之一的
篇幅分析思路及过程,以及阐述代码的优化与提速方法。
通读本书,并且反复操作案例,必可掌握VBA 的精髓。

罗刚君



前言

Excel 是优秀、市场占有率高的制表软件,这归功于它强大且灵活的制表功能和二次开发平
台。通过二次开发平台,让用户可以开发新的工具,从而实现Excel 本身不具备的功能,或者弥补Excel 自身的不足。
Excel VBA 可以实现操作自动化,让某些工作全自动完成,进而提升工作效率,这使得Excel
从众多制表软件中脱颖而出。
通过VBA 进行二次开发可以增强Excel 的功能,将某些复杂或者重复的日常工作简化,还可以开发商业插件或者小型财务系统等。可以说,Excel VBA 已完全融入办公人员的日常工作,拥有VBA 就等于拥有效率。

本书结构
《Excel VBA 程序开发自学宝典(第4 版)》是适合初学者自学的VBA 教材,它包含了Excel
VBA 的基础理论和高级应用。全书共20 章,前10 章讲述VBA 相关的基础理论以及综合练习,
后10 章讲解了VBA 高级应用的相关知识。前10 章主要介绍了Excel VBA 的基础知识,并通过这些知识的综合应用加深你的理解。具体包含VBA 代码的产生方式、存放方式、调用方式、保存方式、程序结构、四大基本概念(对象、属性、方法和事件)、变量与数据类型、常用语句的语法介绍(包含创建输入框、条件判断语句、循环语句、错误处理语句、选择文件与文件夹),然后提供综合应用案例,帮助你巩固前面所介绍的基础知识,从而让知识系统化。而且还介绍了编程规则与代码优化技巧,以及编程的捷径,帮助你掌握更高效的编程方式以及提升程序的效率。
后10 章介绍了Excel VBA 的高级应用,包含数组、正则表达式、字典、设计窗体、VBA 与
注册表、处理文件及文件夹、开发自定义函数、ribbon 功能区设计、与Word/PPT 协同办公,以及开发通用插件等专业知识。对于任何一个VBA 高级用户而言,这些知识都是不可或缺的,掌握这些知识后才能开发出中大型的、高效的程序。

本书特点
相对于同类书籍,本书在内容编排上具有以下特点。
1. 除了对VBA 的基础语法与常见对象的综合应用进行介绍,本书还重点展示了如何开发一
个独立的、完善的、拥有专用菜单的通用程序。
通过本书,你可以编写出自己的专业插件,还能通过这些插件大幅度提升工作效率,让以往
可能需要几十分钟的工作量在几秒钟内即可完成。
2. 本书基于Excel 2019 写作,但是代码可在Excel 2010、Excel 2013 和Excel 2016 中通用。
由于Excel 2003 已经被淘汰了,因此本书不再讲述传统菜单的设计方法,而是重点讲述功能区的开发思路,并提供若干功能区模板,从而让你可以快速设计功能区组件。
3. 本书比较注重代码的通用性和效率,总结了多条优化代码的规则。
4. 正则表达式可以强化VBA 的字符处理能力。本书详细地阐述了正则表达式的调用方法、
语法,并提供了大量案例与思路,这在所有VBA 书籍中是独一无二的。
5. 本书提供了诸多通用型的工具设计思路和源代码,例如,全自动汇总工作簿、批量拆分
工作簿、批量合并工作表、批量打印标签等。你可以借用这些案例的思路开发出更多的小工具,从而提升工作效率。

附赠资源
本书附赠资源中含了三方面内容:案例源文件和案例源代码,以及案例演示视频。
1. 安全源文件
提供所有案例对应的素材文件,你可以直接下载和使用,省去手工模拟数据的时间。
2. 案例源代码
本书所有的案例源代码都有详细的说明,有助于你理解。在学习中千万不要抄写代码,尽量
直接使用现成的代码和源文件去练习,避免抄写错误导致测试不成功,浪费大量时间。
3. 案例演示视频
附赠资源中还包含了100 多个mp4 格式的案例演示视频。操作步骤较多的案例都搭配了视频演示过程,方便你学习和理解,可以更快地掌握操作方法。对于那些单击菜单即可完成的案例则没有相应的视频。

适合读者群
本书对VBA 的基础知识有比较详尽地介绍,并提供了大量的案例引导读者逐步深入学习。
适合阅读本书的读者包括三类:
1. VBA 初学者,通过本书能够踏入VBA 的门槛。
2. 已有VBA 基础但需要扩充知识面者。本书涉及的VBA 知识相当全面,包含了学习VBA
必需掌握的基础知识,也提供了正则表达式、注册表和功能区设计等边缘性知识,从而让你对VBA 掌握得更全面。
本书还提供代码优化的诸多规则,掌握这些规则可让程序具有更强的通用性和执行效率。
3.对VBA 已有相当多的认识,但想开发更专业的插件者。本书对开发加载宏有详细的阐述。

目录

目录
第1 章 初步感受VBA 的魅力 .......................................................................................... 1
1.1 批量任务一键执行 ................................................................................................... 1
1.1.1 准备工作 ...................................................................................................... 1
1.1.2 程序测试 ...................................................................................................... 1
1.1.3 案例点评 ...................................................................................................... 2
1.2 数据汇总自动完成 ................................................................................................... 2
1.2.1 案例需求 ...................................................................................................... 2
1.2.2 程序测试 ...................................................................................................... 3
1.2.3 案例点评 ...................................................................................................... 3
1.2.4 开发专业程序 ............................................................................................... 4
第2 章 VBA 程序入门 ...................................................................................................... 5
2.1 如何存放代码 ........................................................................................................... 5
2.1.1 认识模块 ...................................................................................................... 5
2.1.2 管理模块 ...................................................................................................... 6
2.2 如何产生代码 ........................................................................................................... 7
2.2.1 复制现有的代码 ........................................................................................... 7
2.2.2 录制宏 .......................................................................................................... 7
2.2.3 手工编写代码 ............................................................................................... 9
2.2.4 从模板中获取代码 ..................................................................................... 10
2.3 如何调用代码 ......................................................................................................... 10
2.3.1 <F5>键 .................................................................................................... 10
2.3.2 组合键 ...................................................................................... 11
2.3.3 自定义快捷键 ............................................................................................. 12
2.3.4 按钮 ............................................................................................................ 12
2.3.5 菜单 ............................................................................................................ 13
2.4 如何保存代码 ......................................................................................................... 13
2.4.1 工作簿格式 ................................................................................................ 13
2.4.2 解决丢失代码问题 ..................................................................................... 14
2.4.3 显示文件扩展名 ......................................................................................... 14
2.5 如何放行代码 ......................................................................................................... 15
2.5.1 调整“宏设置” ......................................................................................... 16
2.5.2 添加受信任位置 ......................................................................................... 16

2.6 如何查询代码帮助 ................................................................................................. 17
2.6.1 Excel 不同版本中的帮助差异 .................................................................... 17
2.6.2 如何调用帮助系统 ..................................................................................... 17
2.7 如何简化开发难度 ................................................................................................. 19
2.7.1 录制宏 ........................................................................................................ 19
2.7.2 调用内置提示 ............................................................................................. 19
2.7.3 调用笔记 .................................................................................................... 21
第3 章 VBA 的程序结构详解 ......................................................................................... 22
3.1 Sub 过程基本语法 ................................................................................................. 22
3.1.1 认识程序结构 ............................................................................................. 22
3.1.2 为VBA 程序添加注释 ................................................................................ 23
3.2 过程的作用范围 ..................................................................................................... 24
3.2.1 何谓作用范围 ............................................................................................. 24
3.2.2 公有过程与私有过程的区别 ...................................................................... 24
3.3 过程的命名规则 ..................................................................................................... 25
3.4 过程的参数 ............................................................................................................ 25
3.5 过程的执行流程 ..................................................................................................... 26
3.5.1 正常的执行流程 ......................................................................................... 26
3.5.2 改变程序的执行流程 ................................................................................. 26
3.6 中断过程 ................................................................................................................ 27
3.6.1 结束过程:End Sub .................................................................................. 27
3.6.2 中途结束过程:Exit Sub ............................................................................ 27
3.6.3 中途结束一切:End .................................................................................. 27
3.6.4 暂停过程:Stop ......................................................................................... 27
3.6.5 手动暂停程序:Ctrl+Break ....................................................................... 28
第4 章 VBA 四大基本概念 ............................................................................................. 29
4.1 Excel 的对象 .......................................................................................................... 29
4.1.1 什么是对象 ................................................................................................ 29
4.1.2 对象与对象集合 ......................................................................................... 30
4.1.3 对象的层次结构 ......................................................................................... 32
4.1.4 父对象与子对象 ......................................................................................... 33
4.1.5 活动对象 .................................................................................................... 34
4.2 对象的方法和属性 ................................................................................................. 35
4.2.1 属性与方法的区别 ..................................................................................... 36
4.2.2 查询方法与属性的两种方法 ...................................................................... 36
4.2.3 方法与属性的应用差异 .............................................................................. 37
4.3 对象的事件 ............................................................................................................ 40
4.3.1 什么是事件 ................................................................................................ 40
4.3.2 事件的分类及其层级关系 .......................................................................... 41

4.3.3 工作簿事件与工作表事件一览 .................................................................. 41
4.3.4 工作簿与工作表事件的作用对象 .............................................................. 42
4.3.5 快速掌握事件过程 ..................................................................................... 44
4.3.6 何时需要使用事件过程 .............................................................................. 44
第5 章 通过变量强化程序功能 ...................................................................................... 45
5.1 数据类型 ................................................................................................................ 45
5.1.1 为什么要区分数据类型 .............................................................................. 45
5.1.2 认识VBA 的数据类型 ................................................................................ 45
5.2 声明变量 ................................................................................................................ 47
5.2.1 变量的定义 ................................................................................................ 47
5.2.2 变量的声明方式 ......................................................................................... 47
5.2.3 变量的赋值方式与初始值 .......................................................................... 49
5.2.4 如何确定变量的数据类型正确 .................................................................. 50
5.2.5 正确声明变量的数据类型的优势 .............................................................. 50
5.2.6 变量的作用域 ............................................................................................. 52
5.2.7 变量的生命周期 ......................................................................................... 53
5.3 对象变量 ................................................................................................................ 53
5.3.1 如何区分对象变量和数据变量 .................................................................. 54
5.3.2 对变量赋值 ................................................................................................ 54
5.3.3 使用对象变量的优势 ................................................................................. 55
5.4 声明常量 ................................................................................................................ 56
5.4.1 常量的定义与用途 ..................................................................................... 56
5.4.2 常量的声明方式 ......................................................................................... 57
5.2.3 常量的命名规则 ......................................................................................... 57
第6 章 详解五大常用对象 .............................................................................................. 59
6.1 对象基础知识 ......................................................................................................... 59
6.1.1 对象的结构 ................................................................................................ 59
6.1.2 对象与对象的集合 ..................................................................................... 60
6.1.3 引用集合中的单一对象 .............................................................................. 60
6.1.4 父对象与子对象 ......................................................................................... 60
6.1.5 活动对象 .................................................................................................... 61
6.1.6 使用变量简化对象的引用 .......................................................................... 61
6.1.7 使用With 语句简化对象的引用 ................................................................. 62
6.2 单元格对象 ............................................................................................................ 63
6.2.1 Range("A1")方式引用单元格 ..................................................................... 64
6.2.2 Cells(1,1)方式引用单元格 ......................................................................... 66
6.2.3 [a1]方式引用单元格 .................................................................................. 67
6.2.4 Range("A1")、Cells(1,1)与[a1]比较 ................................................ 68
6.2.5 Selection 与ActiveCell:当前选区与活动单元格 ..................................... 69

6.2.6 已用区域与当前区域 ................................................................................. 69
6.2.7 SpecialCells:按条件引用区域 ................................................................. 70
6.2.8 CurrentArray:引用数组区域 .................................................................... 74
6.2.9 Resize:重置区域大小 .............................................................................. 75
6.2.10 Offset:根据偏移量引用新区域 .............................................................. 76
6.2.11 Union:多区域合集 ................................................................................. 78
6.2.12 Intersect:单元格、区域的交集 .............................................................. 79
6.2.13 End:引用源区域的区域尾端的单元格 .................................................. 80
6.2.14 EntireRow/EntireColumn:扩展至整行、整列 ........................................ 81
6.2.15 RangeSelection:工作表中的选定单元格 .............................................. 82
6.2.16 VisibleRange:指定窗口的可见区域 ...................................................... 83
6.3 批注对象 ................................................................................................................ 84
6.3.1 批注对象的特点 ......................................................................................... 84
6.3.2 判断单元格中是否有批注 .......................................................................... 85
6.3.3 AddComment:对单元格添加批注 .......................................................... 85
6.3.4 AutoSize:让批注框自动缩放 ................................................................... 86
6.3.5 AutoShapeType:修改批注的外观 ........................................................... 86
6.3.6 ClearComments:清空表中所有批注 ....................................................... 86
6.4 图形对象 ................................................................................................................ 87
6.4.1 Shapes:图形对象集合 ............................................................................ 87
6.4.2 图形对象的名称 ......................................................................................... 87
6.4.3 隐藏的图形对象集合 ................................................................................. 88
6.5 表对象 .................................................................................................................... 90
6.5.1 表的类别 .................................................................................................... 90
6.5.2 Worksheets:工作表集合.......................................................................... 90
6.5.3 引用工作表子集 ......................................................................................... 91
6.5.4 ActiveSheet:活动表 ................................................................................. 91
6.5.5 工作表的特性 ............................................................................................. 92
6.5.6 新建工作表 ................................................................................................ 93
6.6 工作簿对象 ............................................................................................................ 93
6.6.1 工作簿格式与特性 ..................................................................................... 93
6.6.2 新建工作簿 ................................................................................................ 94
6.6.3 Workbooks:工作簿集合 .......................................................................... 94
6.6.4 引用工作簿子集 ......................................................................................... 94
6.6.5 ActiveWorkbook:活动工作簿 .................................................................. 94
第7 章 常用语句解析 ..................................................................................................... 95
7.1 输出/输入语句........................................................................................................ 95
7.1.1 MsgBox 函数 .............................................................................................. 95
7.1.2 Application.InputBox 方法 ......................................................................... 98
7.2 条件判断语句 ....................................................................................................... 103

7.2.1 IIf 函数的语法与应用 ............................................................................... 103
7.2.2 IIf 函数的限制 ........................................................................................... 105
7.2.3 If Then 语句的语法详解 ........................................................................... 106
7.2.4 If Then 应用案例 ...................................................................................... 106
7.2.5 If Then Else 语句的语法与应用 ............................................................... 107
7.2.6 多条件嵌套的条件判断语句 .................................................................... 110
7.2.7 Select Case 语法详解 .............................................................................. 114
7.2.8 Select Case 与If Then Else 之比较 ......................................................... 117
7.2.9 借用Choose 函数简化条件选择 ............................................................. 118
7.3 循环语句 .............................................................................................................. 120
7.3.1 For Next 语句 ........................................................................................... 120
7.3.2 For Each Next 语句 .................................................................................. 127
7.3.3 Do Loop 语法详解 ................................................................................... 132
7.4 错误处理语句 ....................................................................................................... 140
7.4.1 错误类型与原因 ....................................................................................... 140
7.4.2 err 对象及其属性、方法 .......................................................................... 141
7.4.3 认识Error 函数 ........................................................................................ 142
7.4.4 On Error GoTo line ................................................................................... 142
7.4.5 On Error Resume Next ............................................................................. 146
7.4.6 On Error GoTo 0 ...................................................................................... 151
7.5 浏览语句 .............................................................................................................. 151
7.5.1 认识FileDialog 对象 ................................................................................ 151
7.5.2 选择路径 .................................................................................................. 152
7.5.3 选择文件 .................................................................................................. 153
7.5.4 按类型选择文件 ....................................................................................... 154
第8 章 开发自启动程序 ............................................................................................... 157
8.1 让宏自动执行 ....................................................................................................... 157
8.1.1 Auto 自动宏 .............................................................................................. 157
8.1.2 升级版自动宏:事件 ............................................................................... 158
8.1.3 事件的禁用与启用 ................................................................................... 160
8.1.4 事件的特例 .............................................................................................. 161
8.2 工作表事件 .......................................................................................................... 162
8.2.1 在状态栏提示最大值的单元格地址 ......................................................... 162
8.2.2 快速输入出勤表 ....................................................................................... 163
8.2.3 在状态栏显示选区的字母、数字、汉字个数 ......................................... 164
8.2.4 实时监控单元格每一次编辑的数据与时间 ............................................. 166
8.2.5 利用数字简化公司名输入 ........................................................................ 168
8.2.6 输入数据时自动跳过带公式的单元格 ..................................................... 170
8.3 工作簿事件 .......................................................................................................... 171
8.3.1 新建工作表时自动设置页眉 .................................................................... 171

8.3.2 未汇总则禁止打印与关闭工作簿 ............................................................ 172
8.3.3 自动选中相同值并计数 ............................................................................ 174
8.3.4 设计未启用宏就无法打开的工作簿 ......................................................... 176
8.4 定时执行的程序 ................................................................................................... 177
8.4.1 基本语法 .................................................................................................. 178
8.4.2 每天在13:28 语音提示开会 .................................................................... 178
8.4.3 在单元格中显示当前时期 ........................................................................ 179
第9 章 综合应用案例 ................................................................................................... 181
9.1 Application 应用案例 ........................................................................................... 181
9.1.1 计算字符表达式 ....................................................................................... 181
9.1.2 合并相同且相邻的单元格 ........................................................................ 182
9.1.3 定时打印文件 ........................................................................................... 184
9.1.4 模拟键盘快捷键打开高级选项 ................................................................ 185
9.1.5 使用快捷键合并与取消合并单元格 ......................................................... 186
9.1.6 查找至少两月未付货款的客户名称 ......................................................... 188
9.2 Range 对象应用案例 ........................................................................................... 190
9.2.1 合并工作表 .............................................................................................. 190
9.2.2 合并区域且保留所有数据 ........................................................................ 193
9.2.3 合并计算多区域的值 ............................................................................... 194
9.2.4 模糊查找公司名称并罗列出来 ................................................................ 196
9.2.5 反向选择单元格 ....................................................................................... 198
9.2.6 插入图片并调整为选区大小 .................................................................... 200
9.2.7 提取唯一值 .............................................................................................. 202
9.2.8 隐藏所有公式结果为错误的单元格 ......................................................... 203
9.3 Comment 对象应用案例 ..................................................................................... 205
9.3.1 在所有批注末尾添加指定日期 ................................................................ 205
9.3.2 生成图片批注 ........................................................................................... 207
9.3.3 添加个性化批注 ....................................................................................... 208
9.3.4 批量修改当前表的所有批注外形 ............................................................ 210
9.4 WorkSheet 对象应用案例 .................................................................................... 213
9.4.1 新建工作表并且命名为今日日期 ............................................................ 213
9.4.2 批量保护工作表与解除保护 .................................................................... 214
9.4.3 为所有工作表设置水印 ............................................................................ 216
9.4.4 批量命名工作表 ....................................................................................... 218
9.4.5 判断筛选条件 ........................................................................................... 220
9.5 Workbook 对象应用案例 ..................................................................................... 223
9.5.1 拆分工作簿 .............................................................................................. 223
9.5.2 每10 分钟备份一次工作簿 ...................................................................... 225
9.5.3 5 分钟未编辑工作簿则自动备份 ............................................................. 226
9.5.4 记录文件打开次数 ................................................................................... 228

9.5.5 不打开工作簿而提取数据 ........................................................................ 230
9.5.6 建立指定文件夹下所有工作簿目录和工作表目录 .................................. 232
第10 章 编程规则与代码优化 ...................................................................................... 234
10.1 代码编写规则 ..................................................................................................... 234
10.1.1 对代码添加注释 ..................................................................................... 234
10.1.2 长代码分行 ............................................................................................ 237
10.1.3 代码缩进对齐 ......................................................................................... 238
10.1.4 声明有意义的变量名称 .......................................................................... 239
10.1.5 If Then End If 类配对语句的输入方式 ................................................... 240
10.1.6 输入属性与方法的技巧 .......................................................................... 240
10.1.7 无提示的词组的输入技巧 ...................................................................... 242
10.1.8 善用公共变量 ......................................................................................... 242
10.1.9 使用常量名称替代数值 .......................................................................... 243
10.1.10 尽可能兼容Excel 2003 到Excel 2019 之间的所有版本 ..................... 243
10.2 优化代码思路 ..................................................................................................... 244
10.2.1 强制声明变量 ......................................................................................... 244
10.2.2 善用常量 ................................................................................................ 244
10.2.3 关闭屏幕更新 ......................................................................................... 244
10.2.4 利用With 减少对象读取次数................................................................. 245
10.2.5 利用变量减少对象读取次数 .................................................................. 245
10.2.6 善用带$的字符串处理函数 .................................................................... 246
10.2.7 不使用Select 和Activate 直接操作对象 ............................................... 246
10.2.8 将与循环无关的语句放到循环语句外 ................................................... 247
10.2.9 利用Instr 函数简化字符串判断 ............................................................. 247
10.2.10 使用Replace 简化字符串连接 ............................................................ 248
10.3 借用参数简化程序调用 ..................................................................................... 248
10.3.1 参数的概念与用途 ................................................................................. 248
10.3.2 参数的语法结构 ..................................................................................... 249
10.3.3 设计带有必选参数的过程 ...................................................................... 249
10.3.4 设计带有可选参数的过程 ...................................................................... 251
10.3.5 设计带有不确定数量参数的过程 .......................................................... 253
10.3.6 参数的赋值方式 ..................................................................................... 254
第11 章 高阶应用1:数组 ........................................................................................... 256
11.1 数组基础 ............................................................................................................ 256
11.1.1 何谓数组 ................................................................................................ 256
11.1.2 数组的特点 ............................................................................................ 256
11.1.3 一维数组 ................................................................................................ 257
11.1.4 二维数组 ................................................................................................ 259
11.1.5 数组的参数 ............................................................................................ 260

11.1.6 声明数组变量 ......................................................................................... 261
11.1.7 动态数组与静态数组的区别 .................................................................. 263
11.1.8 释放动态数组的存储空间 ...................................................................... 268
11.2 数组函数 ............................................................................................................ 268
11.2.1 用函数创建数组 ..................................................................................... 268
11.2.2 获取数组元素 ......................................................................................... 270
11.2.3 判断变量是否为数组 ............................................................................. 270
11.2.4 转置数组 ................................................................................................ 271
11.2.5 获取数组的上标与下标 .......................................................................... 272
11.2.6 转换文本与数组 ..................................................................................... 273
11.2.7 筛选数组 ................................................................................................ 275
11.3 数组实战 ............................................................................................................ 276
11.3.1 将指定区域的单词统一为首字母大写 ................................................... 276
11.3.2 罗列不及格人员姓名、科目和成绩 ....................................................... 277
11.3.3 跨表搜索学员信息 ................................................................................. 278
11.3.4 将职员表按学历拆分成多个工作表 ....................................................... 280
11.3.5 将选区的数据在文本与数值间互换 ....................................................... 281
11.3.6 获取两列数据的相同项 .......................................................................... 283
11.3.7 无人值守的多工作簿自动汇总 .............................................................. 285
第12 章 高阶应用2:正则表达式 ................................................................................ 288
12.1 何谓正则表达式 ................................................................................................. 288
12.1.1 概念 ........................................................................................................ 288
12.1.2 特点 ........................................................................................................ 288
12.1.3 调用方式 ................................................................................................ 289
12.2 语法基础 ............................................................................................................ 290
12.2.1 调用正则表达式的基本格式 .................................................................. 290
12.2.2 正则表达式的对象、属性和方法 .......................................................... 291
12.2.3 匹配的优先顺序 ..................................................................................... 294
12.2.4 借用元字符强化搜索功能 ...................................................................... 295
12.3 正则表达式应用 ................................................................................................. 311
12.3.1 乱序字符串取值并汇总 .......................................................................... 311
12.3.2 计算建筑面积 ......................................................................................... 312
12.3.3 计算括号中的数字合计 .......................................................................... 313
12.3.4 删除字符串首尾的空白字符 .................................................................. 314
12.3.5 将字符串中的多段数字分列 .................................................................. 315
12.3.6 提取E-mail 地址 .................................................................................... 315
12.3.7 提取文件的路径和名称 .......................................................................... 316
12.3.8 汇总人民币 ............................................................................................ 317
12.3.9 开发分列函数 ......................................................................................... 318
12.3.10 删除重复字词 ....................................................................................... 319

第13 章 高阶应用3:字典 .......................................................................................... 321
13.1 Dictionary 对象基础 ........................................................................................... 321
13.1.1 Dictionary 对象的调用 ........................................................................... 321
13.1.2 Dictionary 对象的特点 ........................................................................... 323
13.1.3 Dictionary 对象的属性与方法 ................................................................ 323
13.2 Dictionary 对象的应用技巧 ................................................................................ 328
13.2.1 利用Dictionary 创建三级选单 ............................................................... 328
13.2.2 分类汇总 ................................................................................................ 330
13.2.3 对多列数据相同者应用背景色 .............................................................. 331
13.2.4 按姓名计数与求产量平均值 .................................................................. 332
13.2.5 按品名统计半年的产量合计 .................................................................. 333
第14 章 高阶应用4:设计窗体 ................................................................................... 335
14.1 UserForm 简介 ................................................................................................... 335
14.1.1 窗体与控件的用途 ................................................................................. 335
14.1.2 插入窗体与添加控件的方法 .................................................................. 335
14.2 窗体控件一览 ..................................................................................................... 336
14.2.1 标签 ........................................................................................................ 336
14.2.2 文本框 .................................................................................................... 336
14.2.3 命令按钮 ................................................................................................ 336
14.2.4 复合框 .................................................................................................... 337
14.2.5 列表框 .................................................................................................... 337
14.2.6 复选框 .................................................................................................... 337
14.2.7 选项按钮 ................................................................................................ 337
14.2.8 分组框 .................................................................................................... 337
14.2.9 切换按钮 ................................................................................................ 337
14.2.10 多页控件 .............................................................................................. 337
14.2.11 滚动条 .................................................................................................. 338
14.2.12 图像 ...................................................................................................... 338
14.2.13 RefEdit.................................................................................................. 338
14.2.14 附加控件 .............................................................................................. 338
14.3 设置控件属性 ..................................................................................................... 338
14.3.1 调整窗体控件位置与大小 ...................................................................... 339
14.3.2 设置控件的顺序 ..................................................................................... 339
14.3.3 共同属性与非共同属性 .......................................................................... 339
14.3.4 设置颜色属性 ......................................................................................... 339
14.3.5 设置控件的宽度与高度 .......................................................................... 340
14.3.6 设置Picture 属性 ................................................................................... 340
14.3.7 设置RowSource 属性 ............................................................................ 341
14.3.8 设置List 属性 ......................................................................................... 342
14.4 窗体与控件的事件 ............................................................................................. 343
14.4.1 UserForm 对象的事件 ........................................................................... 343
14.4.2 激活窗体时将所有工作表名称导入到列表框 ....................................... 344
14.4.3 双击或者按键关闭窗体 ............................................................. 345
14.4.4 窗体永远显示在上左角 .......................................................................... 346
14.4.5 按下鼠标左键移动窗体,按下鼠标右键移动控件 ................................ 346
14.4.6 控件事件介绍 ......................................................................................... 348
14.4.7 在窗体中建立超链接 ............................................................................. 349
14.4.8 将鼠标指针移过时切换列表框数据 ....................................................... 351
14.4.9 让输入学号的文字框仅能输入6 位数字 ............................................... 352
14.4.10 运行窗体期间用鼠标调整文字框大小 ................................................. 354
14.4.11 为窗体中所有控件设置帮助 ................................................................ 355
14.5 窗体的综合应用案例 ......................................................................................... 357
14.5.1 设计登录界面 ......................................................................................... 357
14.5.2 权限认证窗口 ......................................................................................... 358
14.5.3 设计计划任务向导 ................................................................................. 359
14.5.4 设计文字滚动的动态帮助信息,并且可单击停止 ................................ 362
14.5.5 用窗体浏览图片 ..................................................................................... 364
14.5.6 设计多表输入面板 ................................................................................. 365
14.5.7 多条件高级查询 ..................................................................................... 367
第15 章 高阶应用5:VBA 与注册表 ........................................................................... 370
15.1 VBA 对注册表的控制方式 ................................................................................. 370
15.1.1 什么是注册表 ......................................................................................... 370
15.1.2 VBA 操作注册表的方法 ......................................................................... 371
15.2 注册表的应用(加入窗体的应用)................................................................... 372
15.2.1 记录最后一次打开工作簿的时间 .......................................................... 372
15.2.2 在窗体中浏览图片,自动记忆上次的路径 ........................................... 373
15.2.3 调整所有表的零值显示状态 .................................................................. 375
15.2.4 插入签名图片到活动单元格 .................................................................. 376
15.3 注册表函数的缺点与改善方法 .......................................................................... 377
15.3.1 VBA 操作注册表的缺点 ......................................................................... 377
15.3.2 借用脚本自由控制注册表 ...................................................................... 378
15.3.3 修改注册表禁用QQ 和记事本 .............................................................. 378
15.3.4 禁止使用U 盘 ........................................................................................ 380
第16 章 高阶应用6:处理文件与文件夹 ..................................................................... 382
16.1 认识FSO 对象、属性与方法 ............................................................................ 382
16.1.1 FSO 对象的调用方式 ............................................................................. 382
16.1.2 FSO 的对象 ............................................................................................ 383
16.1.3 FSO 常用对象的方法与属性 ................................................................. 383
16.2 用FSO 处理文件与文件夹 ................................................................................ 386
16.2.1 将D 盘中所有隐藏的文件夹显示出来 .................................................. 386
16.2.2 遍历子文件夹创建文件目录 .................................................................. 387
16.2.3 删除D 盘中大小为0 的文件夹 ............................................................. 388
16.2.4 罗列最近三天修改过的所有文件的名称 ............................................... 389
16.3 读/写文本文件 ................................................................................................... 390
16.3.1 创建文本文件并写入内容 ...................................................................... 390
16.3.2 读取文本文件 ......................................................................................... 391
16.3.3 开发拆分工作簿工具,可加载参数 ....................................................... 391
第17 章 高阶应用7:开发自定义函数 ........................................................................ 396
17.1 自定义函数的功能和语法 .................................................................................. 396
17.1.1 Function 过程与Sub 过程的区别 .......................................................... 396
17.1.2 Function 过程的语法 ............................................................................. 396
17.1.3 自定义函数的命名规则 .......................................................................... 398
17.2 开发不带参数的Function 过程 ......................................................................... 398
17.2.1 判断活动工作簿是否存在图形对象 ....................................................... 398
17.2.2 计算公式所在单元格的页数 .................................................................. 399
17.3 开发带有一个参数的Function 过程 .................................................................. 400
17.3.1 在不规则的合并单元格中执行合计 ....................................................... 400
17.3.2 计算单元格中“元”前方的数值之和 ................................................... 401
17.4 开发带有两个参数的Function 过程 .................................................................. 403
17.4.1 提取所有数值与汇总 ............................................................................. 403
17.4.2 获取最大值、最小值或众数的地址 ....................................................... 404
17.4.3 去除括号后计算表达式 .......................................................................... 406
17.5 开发复杂的Function 过程 ................................................................................. 407
17.5.1 按条件串连字符 ..................................................................................... 407
17.5.2 按单元格背景颜色进行条件求和 .......................................................... 409
17.5.3 按颜色查找并返回数组 .......................................................................... 410
17.5.4 计算两列的相同项与不同项 .................................................................. 412
17.6 编写函数帮助 ..................................................................................................... 414
17.6.1 MacroOptions 方法的语法 .................................................................... 414
17.6.2 为函数分类及添加说明 .......................................................................... 415
第18 章 高阶应用8:Ribbon 功能区设计 ................................................................... 417
18.1 功能区开发基础 ................................................................................................. 417
18.1.1 Ribbon 的特点 ....................................................................................... 417
18.1.2 功能区的组件图示 ................................................................................. 417
18.1.3 手工定制功能区 ..................................................................................... 418
18.1.4 认识Ribbon 代码编辑器 ....................................................................... 418
18.1.5 获取内置按钮图标 ................................................................................. 419
18.2 Ribbon 定制之语法分析 .................................................................................. 420
18.2.1 功能区代码的结构 ................................................................................. 420
18.2.2 显示与隐藏功能区:ribbon ................................................................... 422
18.2.3 隐藏选项卡:tab ................................................................................... 423
18.2.4 创建新选项卡:tab................................................................................ 424
18.2.5 创建新组:group ................................................................................... 425
18.2.6 创建对话框启动器:dialogBoxLauncher .............................................. 426
18.2.7 在组中添加命令按钮:button ............................................................... 428
18.2.8 创建切换按钮:toggleButton ................................................................ 430
18.2.9 标签与复选框:labelControl/ checkBox ............................................... 431
18.2.10 在按钮之间添加分隔条:separator .................................................... 432
18.2.11 创建弹出式菜单:menu ...................................................................... 433
18.2.12 创建拆分按钮:SplitButton ................................................................. 434
18.2.13 创建下拉列表:DropDown ................................................................. 436
18.2.14 创建编辑框:editBox .......................................................................... 437
18.2.15 锁定或隐藏内置命令 ........................................................................... 438
18.3 使用回调函数强化功能区 .................................................................................. 439
18.3.1 为什么需要使用回调函数 ...................................................................... 439
18.3.2 回调函数详解 ......................................................................................... 439
18.3.3 创建在每月的1 日到3 日才能使用的按钮 ........................................... 442
18.3.4 创建按下与弹起时自动切换图标的按钮 ............................................... 443
18.3.5 创建一个能显示图形对象数量的标签 ................................................... 445
18.3.6 在功能区中快速查找 ............................................................................. 446
18.3.7 在组的标签处显示问候语 ...................................................................... 448
18.3.8 调用大图片创建下拉菜单 ...................................................................... 449
18.3.9 通过复选框控制错误标识的显示状态 ................................................... 452
18.3.10 在功能区创建工作表目录 .................................................................... 454
18.4 使用模板 ............................................................................................................ 455
18.4.1 模板的重要性 ......................................................................................... 455
18.4.2 模板的使用方法 ..................................................................................... 456
18.5 制作两个模板 ..................................................................................................... 456
第19 章 高阶应用9:与Word/PPT 协同办公 ............................................................. 460
19.1 操作Word 和PPT 文件的基本思路 .................................................................. 460
19.1.1 引用对象 ................................................................................................ 460
19.1.2 代码模板 ................................................................................................ 461
19.1.3 改造代码 ................................................................................................ 462
19.2 使用VBA 操作Word .......................................................................................... 465
19.2.1 批量替换Word 文档 .............................................................................. 465
19.2.2 根据Excel 成绩表批量生成Word 通知单 ............................................. 467
19.2.3 将Word 版的简历提取到Excel 表 ........................................................ 471
19.2.4 批量插入图片到Word 并创建目录 ....................................................... 474
19.3 使用VBA 操作PPT ............................................................................................ 476
19.3.1 根据明细表和图片自动生成PPT .......................................................... 477
19.3.2 批量从PPT 中取值到Excel ................................................................... 481
第20 章 高阶应用10:开发通用插件 .......................................................................... 485
20.1 认识加载宏 ........................................................................................................ 485
20.1.1 加载宏的特点 ......................................................................................... 485
20.1.2 为什么使用加载宏 ................................................................................. 486
20.1.3 加载项管理器 ......................................................................................... 487
20.1.4 加载内置的加载项 ................................................................................. 487
20.1.4 安装与卸载自定义加载宏 ...................................................................... 487
20.1.6 开发加载宏应选哪种格式 ...................................................................... 488
20.1.7 安装加载宏后如何引用其数据 .............................................................. 488
20.1.8 设计加载宏的附加工作 .......................................................................... 488
20.2 开发合并工作表插件 ......................................................................................... 489
20.2.1 确认程序需具备的功能 .......................................................................... 489
20.2.2 设计窗体 ................................................................................................ 489
20.2.3 生成窗体代码 ......................................................................................... 490
20.2.4 设计功能区菜单 ..................................................................................... 492
20.2.5 安装插件并测试功能 ............................................................................. 494
20.3 开发批量打印标签插件 ..................................................................................... 496
20.3.1 确认程序需具备的功能 .......................................................................... 496
20.3.2 设计模板 ................................................................................................ 496
20.3.3 编写代码 ................................................................................................ 496
20.3.4 设计功能区菜单 ..................................................................................... 499
20.3.5 安装插件并测试功能 ............................................................................. 500

读者评论

图书类别

相关图书

趣玩Python:自动化办公真简单(双色+视频版)

本书以数据收集→数据清洗→数据分析→数据可视化→根据数据可视化结果(即图表)做决策为脉络,介绍Python在实际工作场景中的应用,侧重于用Python解决工作中...

 

万亿级流量转发:BFE核心技术与实现

章淼 (作者)

本书围绕BFE 开源项目,介绍网络前端接入和网络负载均衡的相关技术原理,说明BFE开源软件的设计思想和实现机制,讲解如何基于BFE开源软件搭建网络接入平台。<b...

¥89.00

Power BI建模权威指南

阿尔贝托·费拉里 (Alberto Ferrari) 马尔·科鲁索 (Marco Russo) (作者) 刘钰 潘丽萍 付大伟 (译者)

如何使用Excel和Power BI高效发现数字背后的信息?在数据分析时如何准确写出所需的公式?如何快速响应各方需求,提升自己的价值……答案是使用“数据模型”。...

 

跟着视频学Excel数据处理:函数篇

曹明武 (作者)

本书主要介绍Excel函数知识。主要内容包括函数基础知识、函数使用小技巧、文本函数、查找引用函数、逻辑函数、日期和时间函数、其他函数,以及函数初级综合案例、函数...

¥59.90

财务分析那些事儿:Power BI财务数据实战

杨晨 (作者)

本书从财务分析师的视角阐述了Power BI在日常财务工作中的应用,主要包括搭建财务模型、制作分析报告、风险控制、制定预算和财务分析案例等方面,对提升数据处理效...

¥79.00

裸演说:你也能成为演说达人

Garr Reynolds(加尔·雷纳德) (作者) 王佑 (译者)

本书作者是国际知名的畅销书作者,先后撰写了《演说之禅》和《设计之禅》等畅销作品,这本《裸演说》是专门写给演讲者的。作者通过生动的示例和形象的比喻回答了演讲者的困...