随着社会经济和信息技术的飞速发展,人们每天接触到的数据量与日俱增。无论是个人还是企业,管理好信息数据都是一项非常重要的工作。作为Miscrosoft Office套装软件之一,Excel主要用来制作各种数据表格,其数据排序、筛选等功能是其他软件无法比拟的。Excel拥有强大的数据处理功能,通过它可以非常迅速地管理多种数据。Excel对于初级用户来说,是一款非常容易上手的制表软件,很多用户都需要每天通过Excel制作各种各样的数据表格。同时,其便捷而强大的数据处理功能也吸引着高手们不断深入挖掘,用以完成复杂的数据处理、数据分析和预测工作。
使用Excel进行数据处理时,经常会遇到需要重复步骤来完成制表的情况,每次都重复相同的步骤会非常麻烦,而通过Excel的宏功能可以非常方便地自动完成机械重复式的工作。宏可以记录实际使用中的操作步骤,并且可以自动执行这些步骤。例如,在对某个单元格区域的格式进行多项设置时,可以将“多项设置”操作录制成宏,以后通过录制的宏就能快速完成格式设置。但是通过录制功能实现的宏有很多缺点,如使用了没有必要的代码、无法执行循环和分支操作、无法与用户交互等。此时,用户可以使用VBA编程语言来直接编写宏。VBA的功能非常强大,例如,需要从几万个数据中删除重复记录时,无论是通过排序、筛选等功能,还是通过录制宏都是无法实现的,而通过VBA编程制作的宏,只需要少量的代码即可实现上述功能。
学习VBA编程最有效的方法是:先系统学习相关的理论,再模仿高手们制作的实例,最后形成自己独特的编程能力。为了帮助用户快速学习VBA,笔者精心从生活和工作中抽取了若干典型的实例,用户可通过分析实例中的代码,培养编程能力。同时,这些实例应用非常广泛,用户将这些实例稍加修改后即可形成自己的作品。本书以Excel 2010为平台,通过众多实例展现Excel 2010强大的数据处理与分析功能,从未接触过VBA开发的读者可顺利步入VBA开发的殿堂,已了解VBA开发的读者可积累更多的实战经验。本书的内容并不仅仅局限于Excel 2010,部分实例中还将Excel 2010与数据库结合起来,极大地提高了数据处理与分析的速度。而Excel 2010的工作簿文件本身也可以看作一个数据库,在本书中也有相应实例展现如何操作Excel数据库文件。
本书的特点
(1)循序渐进,由浅入深。
本书采取由浅入深的方式展开。本书前面3章是基础章节,介绍Excel
VBA开发的基础知识,包括熟悉VBE开发环境、VBA程序设计基础和Excel对象模型。在实例的安排上,前面的章节讲述的基本上是较为简单的实例,复杂的实例都放置在后面的章节。
(2)案例实用,内容丰富。
本书中所讲述的实例都具有很强的应用价值,实例用途各不相同,其开发方式也不一样。部分实例之间的开发方式具有较强的可比性,用户可以根据需要及各开发方式的优缺点进行选择。在实例选材上,也并不单一地局限为商业应用方向的实例。
(3)知识点提示,加深理解。
在本书的实例章节,基本上都会有知识点提示。这些知识点都是对应章节中使用到的难点与重点知识。了解并熟练掌握这些知识不仅有助于理解实例,还有助于丰富读者的开发思路。将知识点安排在每个章节的前面,也便于读者及时查找疑点问题,加深理解。
(4)注释详细,图文并茂。
本书的程序代码使用统一的格式标识,代码块的每一句后面都会标识注释,对该语句的作用加以说明。对于比较复杂的过程或函数,为了能够让读者更容易理解其意图,在讲述中不仅通过文字说明其运行流程,还通过流程图展示其过程。其中的一些重点与难点都会于其中加以讲述。
(5)配有光盘,加速学习。
本书配套光盘中包含了书中相关操作内容以及各个实例的源文件,建议读者先观看随书赠送的光盘视频,再研读书中的实例代码,最后再根据光盘中的实例文件分析和制作相关实例。
本书的内容安排
第1章:本章将引导读者步入VBA开发殿堂,其内容包括熟悉VBE开发环境、调试工具和认识宏。
第2章:本章介绍VBA程序设计基础。内容包括数据类型、常量、变量、过程与函数、表达式与运算符、结构语句、常见函数与语句和数组。
第3章:本章对Excel对象模型进行了比较简单的介绍。由于Excel对象模型包含的对象繁多,本章只讲述4个主要对象的常用属性和方法,分别是应用程序对象Application、工作簿对象WorkBook、工作表对象Worksheet和单元格区域对象Range。
第4~9章:这一部分包含了6个较简单的实例,实例的复杂程度依次呈上升趋势。实例涉及客户管理系统、学生成绩管理系统、固定资产管理系统、进销存管理系统、员工管理系统和商场销售管理系统。涉及的知识点包括窗体的设计、工作表界面设计、数据有效性、自动筛选、单元格控制、自定义菜单、名称、工作表函数应用、加载宏等。
第10~12章:这一部分包含了3个较为复杂的实例,大部分都用到了数据库知识。这3个实例分别是学生座位编排系统、合同管理系统、拆分与备份工作簿系统。涉及的知识点包括工作表可见性、保护与撤销工作表保护、DAO/ADO数据库对象、SQL查询和ADOX对象。
本书适合的读者
VBA入门与有一定经验的读者
公司管理人员
实验室、研究所的数据分析处理人员
会计、审计、统计等工作人员
大中专院校学生
关于作者
乔志会,硕士研究生,毕业于中北大学计算机应用技术专业,2002年至今就职于中北大学。长期从事计算机教学和计算机软件开发相关工作,参与开发了多项计算机仿真相关的项目,先后在国家级、省级学术期刊上发表3篇计算机方面学术论文。
同时参与本书编写的还有宫磊、谷原野、黄其武、李延琨、林家昌、刘林建、孟富贵、孙雪明、王世平、文明、徐增年、银森骑、张家磊、周伟杰、朱玲、张昆,由于编写过程中相对匆忙,如果存在错误,请不吝指出。
编 者
2013年8月
乔志会,硕士研究生,毕业于中北大学计算机应用技术专业,2002年至今就职于中北大学。长期从事计算机教学和计算机软件开发相关工作,参与开发了多项计算机仿真相关的项目,先后在国家级、省级学术期刊上发表3篇计算机方面学术论文。
第1篇 基 础 篇
第1章 初识Excel 2010 VBA 2
1.1 VBA的功能 3
1.2 认识VBA编辑器(VBE) 4
1.2.1 VBE环境的设置 5
1.2.2 VBE编辑器工具栏 6
1.2.3 工程资源管理器 6
1.2.4 “属性”面板 7
1.2.5 代码窗口 8
1.2.6 对象浏览器 8
1.3 VBE调试工具 9
1.3.1 逐句调试 9
1.3.2 断点设置 9
1.3.3 设置下一条语句 10
1.3.4 运行到光标 10
1.3.5 立即窗口 10
1.3.6 悬浮窗口 10
1.3.7 监视窗口 11
1.4 从宏开始学习VBA 11
1.4.1 了解宏 12
1.4.2 录制宏实例 13
1.4.3 分析与编辑宏代码 13
1.4.4 运行宏 14
第2章 VBA程序设计基础 15
2.1 数据类型 16
2.1.1 数值型 17
2.1.2 字节型(Byte) 17
2.1.3 字符串型(String) 17
2.1.4 逻辑型(Boolean) 17
2.1.5 日期型(Date) 18
2.1.6 无符号型(Decimal) 18
2.1.7 变体型(Variant) 18
2.1.8 对象型(Object) 18
2.1.9 用户自定义型 18
2.2 常量 19
2.2.1 直接常量 19
2.2.2 符号常量 20
2.2.3 系统常量 20
2.3 变量 21
2.3.1 变量命名 21
2.3.2 变量声明 21
2.3.3 变量的作用范围 22
2.4 认识过程与函数 23
2.4.1 Sub过程 24
2.4.2 Function过程 25
2.5 表达式与运算符 25
2.5.1 算术表达式 25
2.5.2 比较运算符 26
2.5.3 逻辑运算符 26
2.5.4 连接运算符 27
2.5.5 特殊运算符 27
2.6 结构语句 28
2.6.1 赋值语句 28
2.6.2 输出语句 29
2.6.3 If…Then语句 29
2.6.4 If…Then…Else语句以及变种 30
2.6.5 Select Case多分支语句 31
2.6.6 Do…Loop语句 33
2.6.7 For…Next语句 35
2.6.8 For Each…Next语句 36
2.6.9 跳转语句 37
2.7 常见函数与语句 38
2.7.1 注释语句 38
2.7.2 InputBox函数 39
2.7.3 MsgBox函数 39
2.8 数组 40
2.8.1 了解数组定义及上下界 40
2.8.2 多维数组 41
2.8.3 动态数组 41
2.8.4 5个与数组相关的函数和语句 42
2.8.5 在VBA中使用数组 43
第3章 Excel 2010 VBA对象模型 45
3.1 面向对象编程 46
3.1.1 对象的属性 46
3.1.2 对象的方法 47
3.1.3 对象的事件 47
3.2 Application对象 48
3.2.1 Application对象的常用属性 48
3.2.2 Application对象的常用方法 49
3.3 Workbook对象 49
3.3.1 Workbook对象的常用属性 50
3.3.2 Workbook对象的常用方法 50
3.4 Worksheet对象 50
3.4.1 Worksheet对象的常用属性 50
3.4.2 Worksheet对象的常用方法 51
3.5 Range对象 52
3.5.1 Range对象的引用方式 52
3.5.2 Range对象的常用属性 52
3.5.3 Range对象的常用方法 53
第2篇 简单实例篇
第4章 客户管理系统 56
4.1 系统概述 57
4.1.1 设计思路 57
4.1.2 知识点一:显示“开发工具”选项卡 57
4.1.3 知识点二:开启有代码的工作簿 58
4.2 首页设计 59
4.2.1 首页界面设计 60
4.2.2 标签控件显示效果变化代码 63
4.2.3 标签按钮单击事件代码 65
4.3 “客户资料管理”窗体设计 65
4.3.1 窗体界面设计 66
4.3.2 窗体初始化代码设计 67
4.3.3 “新增”按钮代码设计 69
4.3.4 “查找”按钮代码设计 70
4.3.5 检查拼音函数代码设计 71
4.3.6 拼音头字母函数代码设计 72
4.3.7 “修改”按钮代码设计 74
4.3.8 “删除”按钮代码设计 74
4.3.9 “查看客户表”按钮代码设计 76
4.3.10 浏览按钮代码设计 76
4.3.11 浏览按钮状态过程代码设计 78
4.4 “客户资料查询导出”窗体设计 78
4.4.1 窗体界面设计 79
4.4.2 窗体初始化代码设计 80
4.4.3 myCountry与myList过程代码设计 82
4.4.4 按区域筛选客户代码设计 82
4.4.5 myListView过程代码设计 84
4.4.6 选项按钮、文本框和复合框代码设计 85
4.4.7 “开始查询”按钮单击事件代码设计 87
4.4.8 输出报表过程代码设计 88
4.5 系统测试 88
4.5.1 “客户资料管理”窗体测试 89
4.5.2 “客户资料查询导出”窗体测试 90
第5章 学生成绩管理系统 92
5.1 系统概述 93
5.1.1 设计思路 93
5.1.2 知识点一:数据有效性 94
5.1.3 知识点二:自动筛选 95
5.1.4 知识点三:冻结窗格 96
5.1.5 知识点四:End属性 97
5.1.6 知识点五:Sort方法 97
5.2 首页设计 98
5.3 基本资料建立模块设计 100
5.3.1 学生名单表设计 100
5.3.2 教师与科目设置表设计 103
5.3.3 年级班级设置表设计 104
5.4 成绩输入与分析模块设计 105
5.4.1 成绩输入模块设计 106
5.4.2 年级排名模块设计 110
5.4.3 成绩再处理模块设计 113
5.5 查询模块设计 114
5.5.1 班级学生查询设计 114
5.5.2 教师查询设计 115
5.5.3 班级成绩查询设计 116
5.6 窗体设计 117
5.6.1 “成绩查询”窗体设计 117
5.6.2 “选择再处理成绩表”窗体设计 119
5.6.3 “教师查询”窗体设计 120
5.6.4 “学生查询”窗体设计 122
5.6.5 “输入成绩班级的年级与班级名”窗体设计 125
5.7 系统测试 127
5.7.1 建立班级成绩 128
5.7.2 生成年级成绩排名 129
第6章 固定资产管理系统 131
6.1 系统概述 132
6.1.1 设计思路 132
6.1.2 知识点一:设置单元格条件格式 133
6.1.3 知识点二:SendKey方法 134
6.2 首页界面设计 134
6.2.1 首页组成元素 135
6.2.2 首页建立步骤 135
6.3 其他无代码表设计 136
6.3.1 单项固定资产折旧明细模板表设计 137
6.3.2 设置表设计 137
6.4 固定资产登记表设计 138
6.4.1 表界面设计 138
6.4.2 设置单元格条件格式 139
6.4.3 表初始化代码 139
6.4.4 工作表双击事件代码 140
6.4.5 固定资产保存 141
6.5 固定资产登记统计表设计 143
6.5.1 界面设计 143
6.5.2 代码设计 144
6.6 固定资产折旧与现值统计表设计 144
6.6.1 表界面设计 145
6.6.2 表代码设计 145
6.7 基本设置窗体设计 148
6.7.1 窗体界面设计 148
6.7.2 窗体初始化与“确定”、“关闭”按钮代码设计 150
6.7.3 初始化页过程代码解释 151
6.7.4 重置列表过程代码设计 152
6.7.5 多页控件单击事件代码设计 153
6.7.6 “使用部门”页控件单击事件代码设计 154
6.7.7 “资产类别”页事件代码设计 156
6.7.8 “资产来源”页事件代码设计 158
6.8 计提日期窗体设计 159
6.8.1 窗体界面设计 159
6.8.2 窗体代码设计 160
6.9 进度窗体设计 161
6.10 利用数据窗体设计 162
6.10.1 窗体界面设计 162
6.10.2 窗体初始化代码设计 163
6.10.3 窗体控件事件代码设计 164
6.11 输入辅助窗体设计 166
6.11.1 窗体界面设计 166
6.11.2 窗体初始化与卸载事件代码设计 166
6.11.3 窗体控件事件代码设计 169
6.12 公共代码模块设计 169
6.12.1 公共变量模块 169
6.12.2 跳转按钮宏过程代码设计 170
6.12.3 资产类别拼音函数代码设计 171
6.12.4 拼音头字母函数代码设计 172
6.12.5 获取资产编号函数代码设计 173
6.12.6 计提折旧过程代码设计 175
6.12.7 是否计提函数代码设计 177
6.13 系统测试 178
6.13.1 固定资产登记 178
6.13.2 查看固定资产信息 180
6.13.3 计提折旧 180
6.13.4 固定资产折旧与现值统计 181
第7章 进销存管理系统 182
7.1 系统概述 183
7.1.1 设计思路 183
7.1.2 知识点:自定义菜单 184
7.2 Access数据库设计 184
7.2.1 数据表设计 184
7.2.2 建立数据库代码 186
7.3 系统自定义菜单 188
7.3.1 子菜单设计 188
7.3.2 自定义菜单代码设计 189
7.4 系统管理模块设计 193
7.4.1 系统公共变量 193
7.4.2 用户登录模块设计 194
7.4.3 修改用户名模块设计 196
7.4.4 修改密码模块设计 197
7.4.5 用户权限管理模块设计 199
7.5 “供货商资料管理”窗体设计 201
7.5.1 窗体界面设计 201
7.5.2 窗体初始化与关闭事件代码设计 202
7.5.3 “保存”按钮单击事件代码设计 203
7.5.4 “新建”按钮单击事件代码设计 205
7.5.5 “修改”按钮单击事件代码设计 205
7.5.6 “删除”按钮单击事件代码设计 206
7.5.7 “查询”按钮单击事件代码设计 206
7.5.8 ListView控件项目单击事件代码设计 208
7.5.9 查询与显示供货商信息过程代码设计 208
7.5.10 myListView过程代码设计 209
7.6 “商品资料管理”窗体设计 210
7.6.1 窗体界面设计 210
7.6.2 窗体初始化与关闭事件代码设计 211
7.6.3 “保存”按钮单击事件代码设计 212
7.6.4 “新建”按钮单击事件代码设计 214
7.6.5 “修改”按钮单击事件代码设计 214
7.6.6 “删除”按钮单击事件代码设计 215
7.6.7 “查询”按钮单击事件代码设计 215
7.6.8 ListView控件项目单击事件代码设计 216
7.6.9 查询与显示商品信息过程代码设计 217
7.6.10 myListView过程代码设计 217
7.7 “进货资料管理”窗体设计 219
7.7.1 窗体界面设计 219
7.7.2 窗体初始化与关闭代码设计 220
7.7.3 “保存”按钮单击事件代码设计 221
7.7.4 “进货数量”文本框事件代码设计 223
7.7.5 “商品编码”复合框事件代码设计 225
7.7.6 “新建”按钮单击事件代码设计 225
7.7.7 “修改”按钮单击事件代码设计 226
7.7.8 “删除”按钮单击事件代码设计 227
7.7.9 “查询”按钮单击事件代码设计 227
7.7.10 ListView控件项目单击事件代码设计 228
7.7.11 查询与显示进货信息过程代码设计 228
7.7.12 myListView过程代码设计 229
7.8 “销售资料管理”窗体设计 230
7.8.1 窗体界面设计 230
7.8.2 窗体初始化与关闭事件代码设计 231
7.8.3 “保存”按钮单击事件代码设计 232
7.8.4 “商品编码”复合框事件代码设计 234
7.8.5 “销售数量”文本框事件代码设计 235
7.8.6 “新建”按钮单击事件代码设计 236
7.8.7 “修改”按钮单击事件代码设计 236
7.8.8 “删除”按钮单击事件代码设计 237
7.8.9 “查询”按钮单击事件代码设计 238
7.8.10 ListView控件项目单击事件代码设计 239
7.8.11 查询与显示销售信息过程代码设计 239
7.8.12 myListView过程代码设计 240
7.9 “销售统计分析”窗体设计 241
7.9.1 窗体初始化与关闭事件代码设计 242
7.9.2 查询商品名称过程代码设计 243
7.9.3 商品名称复合框过程代码设计 243
7.9.4 复合框事件代码设计 243
7.9.5 按钮单击事件代码设计 245
7.10 库存管理模块设计 247
7.10.1 窗体界面设计 247
7.10.2 窗体初始化过程代码设计 248
7.10.3 “关闭”按钮代码设计 251
7.11 “资料查询与导出”窗体设计 251
7.11.1 窗体界面设计 252
7.11.2 窗体初始化与关闭过程代码设计 252
7.11.3 “查询项目”复合框代码设计 254
7.11.4 “开始查询”按钮代码设计 255
7.11.5 “数据导出”按钮代码设计 257
7.11.6 “选择要查询的信息种类”复合框代码设计 258
7.11.7 “运算符”复合框事件代码设计 259
7.11.8 “重设条件”按钮代码设计 259
7.12 系统测试 260
7.12.1 进货测试 260
7.12.2 销售测试 261
7.12.3 查询与导出测试 262
第8章 员工管理系统 263
8.1 系统概论 264
8.1.1 设计思路 264
8.1.2 知识点一:名称 264
8.1.3 知识点二:使用OnTime方法 265
8.1.4 知识点三:Range对象的Sort方法 265
8.1.5 知识点四:CountIf函数 266
8.1.6 知识点五:DateDiff函数 266
8.2 工作簿对象与表设计 267
8.2.1 主页表 267
8.2.2 员工档案卡表界面设计 268
8.2.3 员工档案卡表代码设计 269
8.2.4 请假登记表设计 273
8.2.5 考勤表设计 273
8.2.6 库表设计 273
8.2.7 参数表设计 274
8.2.8 工作簿对象设计 274
8.3 设计员工档案卡模块代码 274
8.3.1 变量定义 275
8.3.2 记录新增操作 275
8.3.3 记录修改操作 276
8.3.4 记录删除操作 276
8.3.5 记录保存操作 278
8.3.6 记录复制粘贴操作 279
8.3.7 Sheet_Formula过程 280
8.3.8 记录浏览操作 281
8.3.9 记录的查询操作 283
8.3.10 锁定与解锁工作表过程 286
8.3.11 隐藏批注与显示图片过程 287
8.4 考勤签到模块代码设计 288
8.4.1 考勤签到窗体设计 288
8.4.2 考勤签到模块执行流程与初始化代码 289
8.4.3 设计计时器代码 290
8.4.4 设计检查考勤月份代码 291
8.4.5 设计检查考勤表员工资料代码 293
8.4.6 设计标记员工出勤代码 294
8.4.7 设计窗体其他功能代码 297
8.5 请假登记模块代码设计 298
8.5.1 “请假登记”窗体界面设计 299
8.5.2 窗体初始化 299
8.5.3 年月日复合框相关代码设计 300
8.5.4 确认请假登记代码设计 303
8.6 系统测试 306
8.6.1 员工资料登记 307
8.6.2 员工考勤登记 308
8.6.3 员工请假登记 308
第9章 商场销售数据管理系统 309
9.1 系统概论 310
9.2 数据表设计 311
9.2.1 基本信息资料表设计 311
9.2.2 商品销售数据资料表设计 313
9.3 公共模块代码设计 314
9.3.1 公共变量模块设计 314
9.3.2 启动窗体公共过程代码设计 315
9.3.3 总查询字符串设置过程 316
9.3.4 数据库建立与更新过程代码设计 318
9.3.5 压缩数据库代码设计 322
9.4 基本信息设置窗体设计 322
9.4.1 窗体界面设计 323
9.4.2 窗体初始化代码 325
9.4.3 “新建”按钮代码设计 327
9.4.4 “编辑”按钮代码设计 330
9.4.5 “删除”按钮代码设计 332
9.4.6 ListView控件代码设计 332
9.5 商品销售数据登记窗体设计 333
9.5.1 窗体界面设计 333
9.5.2 窗体初始化、激活与卸载代码设计 335
9.5.3 复合框与文本框改变事件代码设计 336
9.5.4 按钮单击事件代码设计 337
9.5.5 刷新复合框过程代码设计 340
9.6 查询销售数据设置窗体设计 342
9.7 查询显示窗体设计 351
9.7.1 窗体界面设计 351
9.7.2 窗体事件代码设计 352
9.7.3 ListView控件事件代码设计 354
9.7.4 “导出所有项”按钮代码设计 355
9.7.5 “重置”按钮代码设计 356
9.7.6 “仅显示勾选项”按钮代码设计 356
9.7.7 “编辑”按钮代码设计 359
9.7.8 “关闭”按钮代码设计 359
9.8 编辑查询条件窗体设计 360
9.8.1 窗体界面设计 360
9.8.2 窗体事件代码设计 360
9.8.3 文本框改变事件 361
9.8.4 “确定”按钮代码设计 362
9.8.5 “关闭”按钮代码设计 362
9.9 系统测试 362
9.9.1 销售数据输入 363
9.9.2 查询销售数据 363
9.9.3 编辑销售数据 364
第3篇 复杂实例篇
第10章 学生座位编排系统 366
10.1 系统概述 367
10.1.1 知识点一:合并单元格 367
10.1.2 知识点二:定义批注 368
10.1.3 知识点三:Split函数的使用 369
10.2 首页设计 369
10.2.1 首页界面设计 370
10.2.2 首页代码设计 373
10.2.3 “编排座位”宏代码设计 373
10.3 学生表设计 377
10.3.1 学生表界面设计 377
10.3.2 学生表代码设计 377
10.4 编排表设计 378
10.4.1 编排表界面设计 378
10.4.2 编排表代码设计 378
10.5 “辅助输入”窗体设计 380
10.5.1 窗体界面设计 380
10.5.2 窗体初始化代码设计 381
10.5.3 “确认”按钮单击事件代码设计 382
10.6 “讲台位置”窗体设计 383
10.6.1 窗体界面设计 383
10.6.2 窗体代码设计 384
10.7 “交换位置”窗体设计 384
10.7.1 窗体界面设计 384
10.7.2 窗体代码设计 385
10.8 “手动调整”窗体设计 385
10.8.1 窗体界面设计 386
10.8.2 窗体代码设计 386
10.9 “行列设置”窗体设计 388
10.9.1 窗体界面设计 388
10.9.2 窗体代码设计 389
10.10 系统测试 390
10.10.1 座位编排设置与自动排列座位 390
10.10.2 调整座位 391
第11章 合同管理系统 392
11.1 系统概论 393
11.1.1 知识点一:工作表的可见性 393
11.1.2 知识点二:隐藏或取消隐藏表 394
11.1.3 知识点三:设置或取消深度隐藏 394
11.1.4 知识点四:保护工作表与撤销保护 395
11.2 数据表设计 396
11.3 首页设计 397
11.3.1 首页界面设计 397
11.3.2 首页代码设计 399
11.4 模块代码设计 400
11.4.1 公共变量模块代码设计 400
11.4.2 创建数据库程序模块代码设计 400
11.5 “用户登录”窗体设计 402
11.5.1 窗体界面设计 402
11.5.2 窗体代码设计 403
11.6 “修改用户名”窗体设计 405
11.6.1 窗体界面设计 405
11.6.2 窗体代码设计 405
11.7 “修改密码”窗体设计 406
11.7.1 窗体界面设计 407
11.7.2 窗体代码设计 407
11.8 “合同基本信息管理”窗体设计 409
11.8.1 窗体界面设计 409
11.8.2 窗体初始化与关闭事件代码设计 411
11.8.3 复合框设置代码设计 413
11.8.4 查询、显示合同基本信息过程代码设计 413
11.8.5 显示合同收费情况过程代码设计 415
11.8.6 “添加类别”与“添加部门”按钮代码设计 416
11.8.7 “新合同”与“添加”按钮代码设计 417
11.8.8 “修改”按钮代码设计 420
11.8.9 “删除”按钮代码设计 420
11.8.10 “查询”按钮代码设计 421
11.8.11 浏览记录按钮组代码设计 422
11.9 “合同收费信息管理”窗体设计 423
11.9.1 窗体界面设计 423
11.9.2 窗体初始化与关闭事件代码设计 425
11.9.3 复合框设置代码设计 426
11.9.4 查询、显示合同收费信息代码设计 427
11.9.5 “添加类别”按钮代码设计 428
11.9.6 “新记录”与“添加”按钮代码设计 429
11.9.7 “修改”按钮代码设计 432
11.9.8 “删除”按钮代码设计 433
11.9.9 “查询”按钮代码设计 433
11.9.10 ListView控件项目单击事件代码设计 435
11.10 “合同信息查询与导出”窗体设计 435
11.10.1 窗体界面设计 435
11.10.2 窗体初始化与关闭事件代码 437
11.10.3 复合框设置代码设计 438
11.10.4 “重设条件”按钮代码设计 439
11.10.5 “开始查询”按钮代码设计 440
11.10.6 “数据导出”按钮代码设计 441
11.10.7 清除显示信息过程代码设计 442
11.11 系统测试 443
11.11.1 “用户登录”窗体测试 443
11.11.2 “修改用户名”窗体测试 443
11.11.3 “修改密码”窗体测试 444
11.11.4 “合同基本信息管理”窗体测试 444
11.11.5 “合同信息查询与导出”窗体测试 446
第12章 拆分与备份工作簿系统 447
12.1 系统概述 448
12.1.1 设计思路 448
12.1.2 知识点一:Excel 2010中装载加载宏 449
12.1.3 知识点二:使用ADOX库 450
12.2 数据库表设计 451
12.3 工作簿与公共模块代码设计 452
12.3.1 工作簿对象代码设计 452
12.3.2 公共变量与菜单按钮代码设计 453
12.3.3 刷新窗体语言显示过程代码设计 454
12.3.4 刷新工作簿列表过程代码设计 455
12.3.5 保存选择工作簿代码设计 456
12.3.6 保存已选中工作簿过程代码设计 457
12.3.7 合并工作簿过程代码设计 458
12.3.8 链接字符串与工作簿名获取过程代码设计 462
12.4 “拆分工作簿”窗体设计 462
12.4.1 窗体界面设计 463
12.4.2 变量定义与窗体激活事件代码设计 464
12.4.3 刷新List控件过程代码设计 464
12.4.4 “浏览拆分工作簿”文本框与“浏览”按钮代码设计 465
12.4.5 “添加”按钮单击事件代码设计 467
12.4.6 “组别”复合框改变事件代码设计 468
12.4.7 “添加”按钮单击事件 469
12.4.8 “删除”按钮单击事件代码设计 470
12.4.9 “开始拆分”按钮单击事件代码设计 471
12.4.10 文件后缀与保存文件名过程代码设计 474
12.5 “选择备份工作簿”窗体设计 474
12.5.1 窗体界面设计 474
12.5.2 窗体事件代码设计 476
12.5.3 工作簿列表控件代码设计 477
12.5.4 “勾选设置”与“语言设置”框架代码设计 478
12.5.5 “打开”与“下一步”按钮代码设计 479
12.5.6 设置控件状态过程代码设计 480
12.6 “选择备份工作表”窗体设计 481
12.6.1 窗体界面设计 481
12.6.2 窗体激活与卸载事件代码设计 482
12.6.3 复合框改变事件代码设计 483
12.6.4 工作表列表、选中设置与按钮代码设计 484
12.6.5 刷新标题过程代码设计 485
12.6.6 设置表名显示状态过程代码设计 486
12.6.7 添加删除选定项过程代码设计 487
12.7 “保存备份文件位置”窗体设计 488
12.7.1 窗体界面设计 488
12.7.2 窗体事件与ListView事件代码设计 489
12.7.3 按钮代码设计 490
12.7.4 刷新已选工作表列表过程代码设计 491
12.7.5 刷新已选择表过程代码设计 492
12.7.6 默认保存文件名过程代码设计 493
12.8 信息提示窗体设计 494
12.8.1 窗体界面设计 495
12.8.2 窗体代码设计 495
12.9 系统测试 496
12.9.1 拆分工作簿模块功能测试 496
12.9.2 备份工作簿模块功能测试 498