《来吧!带你玩转Excel VBA 双色》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:罗刚君,杨嘉恺编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2013
  • ISBN:9787121206276
  • 页数:624 页
图书介绍:本书主要分为操作自动化引言篇、入门篇、进阶篇和疑难解答篇,覆盖从入门到提高的所有内容,以满足不同层次的读者需求。本书每段代码都有思路分析,对每句代码都提供了注释,且采用双色印刷,将代码与代码注释分开,从而提升读者的阅读体验。本书提供了完善的售后服务,包括售后服务QQ群(群号在随书光盘的每一个案例文件中),及售后服务论坛,地址为:http://www.exceltip.net/forum—75~1.html。

第一篇 操作自动化引言篇 2

第1章 操作自动化 2

1.1 自动化操作的价值 3

1.1.1 自动化操作的必要性 3

1.1.2 实现操作自动化的两个途径 4

1.2 利用宏简化日常工作 5

1.2.1 三分钟学会录制宏 5

1.2.2 执行宏的方法 8

1.2.3 两种方法读懂宏代码 9

1.2.4 宏的优缺点分析 12

1.2.5 如何发挥宏的长处 13

1.3 使用VBA强化Excel功能 14

1.3.1 追根溯源:什么是VBA 14

1.3.2 知己知彼:解析VBA的优缺点 14

1.3.3 窥斑见豹:从一个案例初识VBA 15

1.4 Excel VBA的发展前景 16

1.4.1 简化工作 16

1.4.2 开拓专业 17

1.5 本书架构 17

1.6 课后思考 18

第二篇 VBA入门篇 20

第2章 代码应用基础 20

2.1 区分VBE代码窗口 21

2.1.1 认识VBE界面 21

2.1.2 最常用的代码存放区:标准模块 22

2.1.3 工作簿事件代码窗口:ThisWorkbook 26

2.1.4 工作表事件代码窗口:Sheet1 27

2.1.5 窗体代码窗口:UserForm1 27

2.1.6 创建隐藏对象的代码窗口:类模块 28

2.2 录入代码 28

2.2.1 代码的存放位置 28

2.2.2 写入代码的方式 28

2.2.3 提升代码的可读性 30

2.2.4 调用快速信息 35

2.3 四种代码执行方式 35

2.3.1 快捷键调用 36

2.3.2 单击按钮执行 37

2.3.3 自动执行 37

2.3.4 在公式中调用 39

2.4 保存代码 40

2.4.1 文件保存格式对VBA代码的影响 40

2.4.2 单独保存代码模块 41

2.5 让代码畅通无阻 41

2.5.1 调整宏的安全等级 41

2.5.2 添加受信任位置 42

2.5.3 将代码封装为加载项 43

2.6 反复调用相同代码 43

2.6.1 使用个人宏工作簿 43

2.6.2 加载宏 44

2.6.3 加载项 44

2.7 调用代码的帮助系统 44

2.7.1 什么是帮助 45

2.7.2 如何从帮助中查询代码含义 45

2.7.3 调用网络资源 47

2.8 课后思考 47

第3章 从概念开始认识VBA 49

3.1 认识过程 50

3.1.1 过程的分类 50

3.1.2 子过程的基本语法 50

3.1.3 子过程的命名要求 52

3.1.4 子过程的调用方法与访问限制 53

3.1.5 过程的执行顺序 54

3.1.6 过程的递归 56

3.2 关于参数 57

3.2.1 参数的存在价值 57

3.2.2 过程名称中的参数 57

3.2.3 参数的赋值方式 58

3.2.4 可选参数与必选参数 60

3.2.5 代码中的参数 61

3.3 理解对象 63

3.3.1 什么是对象 63

3.3.2 对象的引用层次 64

3.4 对象的属性与方法 64

3.4.1 认识属性与方法 65

3.4.2 自动调用属性与方法 66

3.4.3 怎样才算完整的VBA语句 67

3.5 对象的事件 68

3.5.1 什么是事件 68

3.5.2 事件的存在价值 68

3.5.3 事件的分类与代码录入方式 69

3.5.4 事件的参数 71

3.6 课后思考 72

第4章 详解对象及其层次结构 74

4.1 查看所有对象 75

4.1.1 从对象浏览器查看对象 75

4.1.2 从帮助中调用对象信息 75

4.2 对象的层次与引用方式 76

4.2.1 对象的层次 76

4.2.2 使用对象名称引用对象 76

4.2.3 使用复数形式表示对象集合 77

4.2.4 使用序号参数引用集合中的子对象 78

4.2.5 引用子对象 79

4.2.6 引用活动对象 80

4.2.7 引用父对象 80

4.2.8 利用With语句引用重复出现的对象 81

4.3 Range对象 83

4.3.1 Range(“A1”)引用方式 84

4.3.2 Cells(1,1)引用方式 87

4.3.3 [a1]引用方式 87

4.3.4 活动单元格:ActiveCell 88

4.3.5 下一个单元格:Next 89

4.3.6 屏幕坐标下的单元格:RangeFromPoint 89

4.3.7 选区:Selection、RangeSelection 90

4.3.8 已用区域:UsedRange 92

4.3.9 当前区域:CurrentRegion 94

4.3.10 当前数组区域:CurrentArray 95

4.3.11 按条件引用区域:SpecialCells 96

4.3.12 模拟Ctrl+方向键产生的单元格:End 99

4.3.13 按偏移量重置区域引用:Offset 101

4.3.14 按宽度与高度重置区域:Resize 103

4.3.15 引用多区域的合集:Union 104

4.3.16 引用多区域的交集:Intersect 104

4.3.17 用名称引用区域 107

4.4 图形对象 108

4.4.1 Shapes对象与子对象 109

4.4.2 图形对象的名称 109

4.4.3 DrawingObiects 110

4.4.4 图形对象的类别子集 110

4.5 表对象 112

4.5.1 表的合集与子对象 112

4.5.2 表的分类 112

4.5.3 活动表 113

4.5.4 隐藏工作表的特性 113

4.5.5 引用名字为数值的工作表的技巧 114

4.6 工作簿对象 115

4.6.1 工作簿合集与子对象 115

4.6.2 活动工作簿 115

4.6.3 关于后缀名 116

4.6.4 关于工作簿格式 117

4.7 Excel应用程序对象 117

4.7.1 Excel的顶层对象:Application 117

4.7.2 调用子对象时可以省略Application吗 118

4.7.3 不同版本的Excel之间的差异 118

4.8 课后思考 119

第5章 揭密数据类型与变量、常量 121

5.1 数据类型 122

5.1.1 区分数据类型的必要性 122

5.1.2 数据类型的分类 123

5.1.3 转换数据类型 125

5.2 定义变量 127

5.2.1 变量的用途 128

5.2.2 定义变量的方法 129

5.2.3 变量的命名规则 130

5.2.4 变量的作用域 131

5.2.5 变量的生命周期 133

5.2.6 静态变量与动态变量的区别 134

5.2.7 声明对象变量 136

5.2.8 对象变量的初始化与释放 137

5.3 定义常量 138

5.3.1 常量的用途 138

5.3.2 常量的定义方式 138

5.3.3 变量与常量的异同分析 140

5.4 课后思考 140

第6章 条件语句与循环语句 142

6.1 If语句解析 143

6.1.1 条件语句的重要性 143

6.1.2 If...Then...Else的单行模式 143

6.1.3 And、Or和Not在条件语句中的作用 144

6.1.4 案例解析:指定工作簿的最后开启日期 146

6.1.5 If...Then...Else的块形式 147

6.1.6 块形式的应用案例:创建日期批注 148

6.1.7 嵌套使用If语句 150

6.1.8 If语句的常见错误与防错之法 156

6.2 Select Case语句解析 157

6.2.1 Select Case语句的价值 158

6.2.2 Select Case基本语法 158

6.2.3 多条件应用案例 160

6.2.4 SelectCase与IfThen语句比较 163

6.3 IIf及Choose函数 164

6 3.1 IIf函数语法解析 165

6.3.2 IIf函数案例应用:判断Excel的版本号 165

6.3.3 IIf的优缺点 166

6.3.4 Choose函数语法解析 167

6.3.5 Choose函数应用案例:打开搜索引擎 167

6.4 For Next语句解析 169

6.4.1 循环语句的价值 169

6.4.2 For Next语句基本语法 169

6.4.3 步长值对循环结果的影响 171

6.4.4 ForNext语句应用案例 171

6.5 For Each Next语句解析 175

6.5.1 遍历对象集合 175

6.5.2 For Each...Next语句基本语法 175

6.5.3 For Each...Next语句应用案例:定位大于某值的单元格 176

6.6 While Wend语句解析 178

6.6.1 While Wend语句基本语法 178

6.6.2 While Wend语句应用案例:判断工号是否重复 179

6.7 Do Loop语句解析 182

6.7.1 Do Loop语法分析 182

6.7.2 Do Loop语法一应用 183

6.7.3 Do Loop语法二应用 184

6.7.4 Do Loop语法三应用 185

6.7.5 Do Loop语法四应用 185

6.7.6 总结四种循环语句的优缺点 188

6.8 课后思考 189

第7章 4类常见对象的应用案例 191

7.1 单元格对象 192

7.1.1 选择单元格 192

7.1.2 筛选与复制区域的值 193

7.1.3 多区域复制 194

7.1.4 选择性粘贴数据 196

7.1.5 重置已用数据区域 199

7.1.6 查找所有成绩为100的单元格 201

7.1.7 将表示平方米和立方米后面的2和3设为上标 202

7.1.8 合并相邻且相同的单元格 203

7.1.9 按行合并且保留所有数据 205

7.1.10 隔行插入行 207

7.1.11 标示选区中的重复值 208

7.2 图形对象 210

7.2.1 批量导入图片与图片名称 210

7.2.2 统一表中所有图片大小及对齐图片 212

7.2.3 批量导出图片 214

7.2.4 插入带图片背景的批注 216

7.3 工作表对象 219

7.3.1 显示所有隐藏的工作表 219

7.3.2 创建以本月每日日期命名的工作表 220

7.3.3 保护所有公式 221

7.3.4 批量重命名表 223

7.3.5 查找所有工作表中有循环引用的单元格 224

7.3.6 对职工表按学历排序 225

7.3.7 创建工作表目录 227

7.4 工作簿对象 228

7.4.1 打开带密码且带有自动宏的工作簿 228

7.4.2 另存工作簿且以今天的日期命名 229

7.4.3 将外部链接转换成值 230

7.4.4 关闭工作簿且不保存修改内容 231

7.4.5 定时保存且备份工作簿 233

7.4.6 重命名活动工作簿 234

7.5 课后思考 236

第8章 深入剖析VBA的各种事件 238

8.1 事件的级别与顺序 239

8.1.1 事件的级别与代码保存位置 239

8.1.2 事件的执行方式 240

8.1.3 事件的执行顺序 241

8.2 禁用与启用事件 241

8.2.1 临时关闭事件 242

8.2.2 防止事件的连锁反应 242

8.3 工作表事件详解 244

8.3.1 工作表事件列表 244

8.3.2 Change事件的特例 245

8.3.3 事件案例:激活工作表时验证访问权限 245

8.3.4 事件案例:自动标示当前行的背景 247

8.3.5 事件案例:双击单元格时定位最大值或最小值 248

8.3.6 事件案例:在特定区域右击单元格时产生工作表目录 250

8.3.7 事件案例:输入表达式时在右列自动返回计算结果 251

8.3.8 事件案例:单击目录时可打开隐藏的工作表 252

8.3.9 事件案例:实时保护已录入数据的单元格 253

8.3.10 事件案例:在状态栏显示当前科目的不及格人数 254

8.3.11 事件案例:通过数据有效性的下拉列表调用对应的图片 255

8.4 工作簿事件详解 256

8.4.1 工作簿事件列表 257

8.4.2 事件案例:记录工作簿打开次数 258

8.4.3 事件案例:显示活动工作表中的产量达标率 259

8.4.4 事件案例:保存工作簿时备份文件 260

8.4.5 事件案例:打印数据前检查资料是否填写完整 261

8.4.6 事件案例:关闭工作簿时更新工作表目录 262

8.4.7 事件案例:新建工作表时调用模板格式 263

8.4.8 事件案例:禁止修改总表名称 264

8.4.9 事件案例:新建图表时自动设置为阴影、圆角 265

8.5 应用程序事件详解 266

8.5.1 应用程序与类 266

8.5.2 事件案例:打开任意工作簿时创建工作表目录 266

8.5.3 事件案例:新建工作簿时自动保存 268

8.6 按时执行代码 270

8.6.1 OnKey方法的语法分析 270

8.6.2 创建计划任务 271

8.7 课后思考 271

第9章 处理代码错误 273

9.1 代码错误类型分析 274

9.1.1 版本问题 274

9.1.2 参数赋值不当 274

9.1.3 变量定义不准确 276

9.1.4 对象不存在 276

9.2 错误处理语句 277

9.2.1 详解Err对象 277

9.2.2 详解Error函数 279

9.2.3 On Error Resume Next语句 280

9.2.4 On Error Go To Line语句 281

9.2.5 On Error Go To 0语句 283

9.2.6 GoSub...Return语句 284

9.3 案例应用 287

9.3.1 错误处理的常规思路 288

9.3.2 案例应用:为软件设计收集信息反馈的功能 289

9.3.3 案例应用:根据选区的文件名批量导入图片 292

9.3.4 案例应用:一键屏蔽错误值 294

9.4 课后思考 295

第10章 使用数组提升程序效率 297

10.1 基本概念 298

10.1.1 何谓数组 298

10.1.2 数组的特点 298

10.1.3 一维数组 298

10.1.4 二维数组 301

10.1.5 数组的参数 302

10.1.6 声明数组变量 303

10.1.7 动态数组与静态数组的区别 306

10.1.8 释放动态数组的存储空间 311

10.2 数组函数 312

10.2.1 用函数创建数组 312

10.2.2 获取数组元素 313

10.2.3 判断变量是否为数组 314

10.2.4 转置数组 314

10.2.5 获取数组的上标与下标 316

10.2.6 转换文本与数组 317

10.2.7 筛选数组 319

10.3 案例分析 320

10.3.1 将指定区域的单词统一为首字母大写 320

10.3.2 罗列不及格人员姓名、科目和成绩 322

10.3.3 将字符串合并到区域 323

10.3.4 将职员表按学历拆分成多个工作表 325

10.3.5 将选区的数据在文本与数值间互换 327

10.3.6 获取两列数据的相同项 329

10.3.7 罗列至少三科不及格的学生姓名 331

10.4 课后思考 333

第11章 处理重复值 335

11.1 调用内部功能 336

11.1.1 高级筛选 336

11.1.2 删除重复项 342

11.1.3 数组透视表 345

11.2 Collection:集合 350

11.2.1 集合的特性 350

11.2.2 集合的语法 351

11.2.3 使用集合获取区域中的不重复值 354

11.2.4 罗列B列重复出现的身份证号码 356

11.3 Dictionary:字典 357

11.3.1 字典对象的前期绑定和后期绑定 357

11.3.2 字典的特点 360

11.3.3 字典的属性与方法 360

11.3.4 获取选区中的唯一值 364

11.3.5 对采购表分类求和 366

11.3.6 对采购表分类计数 367

11.3.7 对产量表按组别和产品分类统计 368

11.4 课后思考 369

第12章 开发自定义函数 372

12.1 语法分析 373

12.1.1 Function过程与Sub过程的区别 373

12.1.2 Function过程的基本语法 373

12.1.3 Optional与ParamArray的作用与区别 374

12.1.4 自定义函数的命名规则 375

12.2 开发简单的函数 375

12.2.1 开发函数的常规思路 375

12.2.2 Shui:计算个人所得税 376

12.2.3 EndRow:计算工作表最后非空行/列的行号/列号 378

12.3 开发复杂函数 380

12.3.1 Replacement:替换第N次出现的字符 380

12.3.2 Look:Vlookup之升级版 382

12.3.3 HeBin:按条件合并 384

12.4 开发数组函数 386

12.4.1 Only:获取一个或多个区域的唯一值 386

12.4.2 Statistics:对数据分类汇总 387

12.5 为函数指定注释 390

12.5.1 MacroOptions的功能与语法 390

12.5.2 为函数Look添加注释 390

12.6 课后思考 392

第13章 设计程序窗体 394

13.1 窗体与控件简介 395

13.1.1 窗体的功能 395

13.1.2 创建与运行UserForm对象 396

13.1.3 使用工具箱 398

13.1.4 标签控件 400

13.1.5 文本框控件 400

13.1.6 命令控钮 400

13.1.7 复合框 401

13.1.8 列表框 401

13.1.9 复选框 402

13.1.10 选项按框 402

13.1.11 框架 402

13.1.12 切换按钮 403

13.1.13 多页控件 404

13.1.14 滚动条 405

13.1.15 图像控件 405

13.1.16 Flash控件 405

13.1.17 网页控件 406

13.2 设置属性 407

13.2.1 属性窗口的用途 407

13.2.2 设置属性的两种方式 407

13.2.3 文本框属性 409

13.2.4 命令按钮属性 413

13.2.5 复选框属性 415

13.2.6 列表框属性 417

13.2.7 复合框属性 422

13.2.8 图像控件属性 425

13.2.9 Flash控件属性 426

13.2.10 批量设置控件的属性 426

13.3 窗体与控件的事件 427

13.3.1 UserForm对象的事件 427

13.3.2 控件的事件 428

13.4 窗体应用实战 438

13.4.1 开发多工作表查询窗体 438

13.4.2 开发多工作表快速录入面板 441

13.4.3 以指定名称批量新建或复制工作表 443

13.5 课后思考 448

第三篇 进阶篇 450

第14章 类模块应用 450

14.1 类模块基础 451

14.1.1 类的概念与用途 451

14.1.2 声明与调用类 451

14.2 类模块与程序级事件 453

14.2.1 在状态栏显示当前行的最大值与最小值地址 453

14.2.2 录入数据时自动将M后面的数字2显示为上标 455

14.3 类模块与窗体控件 456

14.3.1 何时需要使用类 456

14.3.2 为按钮批量指定MouseMove事件 456

14.4 课后思考 459

第15章 Excel VBA与Web应用 461

15.1 Web基础知识 462

15.1.1 Web数据的收发原理 462

15.1.2 HTML以及网页元素分析 465

15.2 使用Web查询知识批量获取汇率 466

15.2.1 获取网页数据的实际网址 466

15.2.2 通过录制宏导入汇率首页数据 468

15.2.3 完善宏代码批量导入网页数据 469

15.3 运用Web数据收发机制获取网页信息 470

15.3.1 Web数据通信常用对象简介 470

15.3.2 开发中英互译工具 471

15.3.3 开发火车票查询工具 474

15.4 运用网页元素分析技术实现网页控制和读取 480

15.4.1 创建及访问IE对象 480

15.4.2 如何访问网页元素 481

15.4.3 自动登录新浪微博 482

15.5 课后思考 485

第16章 创建传统工具栏与菜单 487

16.1 自定义工具栏 488

16.1.1 自定义工具栏模板 488

16.1.2 自定义工具栏二级菜单模板 489

16.2 自定义工作表菜单 490

16.3 自定义单元格右键菜单 492

16.4 课后思考 493

第17章 定义Ribbon功能区选项卡 495

17.1 功能区开发基础 496

17.1.1 Ribbon的特点 496

17.1.2 功能区的组件图示 496

17.1.3 手动定制功能区 496

17.1.4 认识Ribbon代码编辑器 497

17.1.5 获取内置按钮图标 498

17.2 Ribbon定制之语法分析 499

17.2.1 功能区代码的结构 499

17.2.2 显示与隐藏功能区:ribbon 501

17.2.3 隐藏选项卡:tab 501

17.2.4 创建新选项卡:tab 502

17.2.5 创建新组:group 503

17.2.6 创建对话框启动器:dialogBoxLauncher 505

17.2.7 在组中添加命令按钮:button 507

17.2.8 创建切换按钮:toggleButton 509

17.2.9 标签与复选框:labelControl/checkBox 511

17.2.10 在按钮之间添加分隔条:separator 512

17.2.11 创建弹出式菜单:menu 513

17.2.12 创建拆分按钮:splitButton 514

17.2.13 创建下拉列表:dropDown 516

17.2.14 创建编辑框:editBox 517

17.2.15 锁定或隐藏内置功能 518

17.3 使用回调函数强化功能区 519

17.3.1 为什么需要使用回调函数 519

17.3.2 回调函数详解 520

17.3.3 创建1到3号才能使用的按钮 522

17.3.4 创建按下与弹起时自动切换图标的按钮 524

17.3.5 创建一个能显示图形对象数量的标签 526

17.3.6 在功能区中快速查找 527

17.3.7 在组的标签处显示问候语 529

17.3.8 调用大图片创建下拉菜单 531

17.3.9 通过复选框控制错误标识的显示状态 534

17.4 使用模板 536

17.4.1 模板的重要性 536

17.4.2 模板的使用方法 536

17.4.3 制作两个模板 537

17.5 创建Backstage视图 540

17.5.1 Backstage视图与Office按钮 540

17.5.2 在Backstage视图中添加按钮 540

17.5.3 添加子选项卡、组及命令按钮 542

17.5.4 在新选项卡中创建弹出式菜单与说明 544

17.5.5 将命令按钮显示在两列中 547

17.5.6 创建导航菜单 550

17.5.7 隐藏Backstage视图中的所有按钮 552

17.6 课后思考 553

第18章 开发通用插件 555

18.1 插件的分类 556

18.1.1 什么是插件 556

18.1.2 插件的分类 556

18.1.3 开发插件和编写普通代码的分别 556

18.2 漫谈加载宏 557

18.2.1 加载宏工作簿的特点 557

18.2.2 加载宏管理器 558

18.2.3 加载宏的使用方法 558

18.2.4 加载宏的安全性 559

18.3 制作工作表批量重命名插件 559

18.3.1 开发通用插件的基本步骤 559

18.3.2 罗列插件需求 560

18.3.3 设计插件窗体 560

18.3.4 编写代码 562

18.3.5 创建菜单与设置快捷键 564

18.3.6 另存为加载宏 565

18.3.7 安装并测试功能 566

18.4 课后思考 567

第19章 保护代码 569

19.1 关于安全性 570

19.1.1 保护代码的必要性 570

19.1.2 保护代码的常用手法 570

19.1.3 VB 6.0封装VBA代码的基本步骤 570

19.2 封装“批量重命名”插件 571

19.2.1 安装VB 6.0企业版 571

19.2.2 创建VB工程 571

19.2.3 添加引用及完善外接程序描述 572

19.2.4 导入窗体 573

19.2.5 声明应用程序接口及变量 573

19.2.6 编写菜单与功能区 574

19.2.7 修改VBA代码 576

19.2.8 生成DLL文件 577

19.2.9 安装与卸载插件 577

19.2.10 测试插件功能 577

19.2.11 VB与VBA代码的差异分析 578

19.3 封装函数 579

19.3.1 封装函数的两种方式 579

19.3.2 在Excel中编写并测试函数 580

19.3.3 创建VB工程 580

19.3.4 添加引用及注释 580

19.3.5 粘贴VBA代码并修改代码 581

19.3.6 生成DLL文件 581

19.3.7 安装与卸载插件 581

19.3.8 测试插件功能 582

19.4 课后思考 582

第20章 制作安装程序 584

20.1 准备工作 585

20.1.1 将VBA代码转换成安装程序的必要性 585

20.1.2 制作安装程序的常用软件 585

20.1.3 Inno Setup简介 585

20.1.4 安装Inno Setup 585

20.2 设计“工作表批量命名”安装程序 585

20.2.1 准备工作 585

20.2.2 通过脚本向导生成脚本代码 586

20.2.3 修改代码并编译成安装文件 589

20.2.4 安装软件 589

20.2.5 脚本代码含义解释 590

20.3 设计更人性化的安装程序 591

20.3.1 提示关闭Excel再安装 591

20.3.2 添加安装密码 592

20.3.3 设计可选安装项 593

20.4 课后思考 594

第21章 让VBA代码也能撤销 596

21.1 突破撤销限制 597

21.1.1 VBA命令的撤销限制 597

21.1.2 设计可以撤销的Sub过程的思路与步骤 597

21.1.3 什么情况适合使用Application.OnUndo方法 599

21.1.4 Application.OnRepeat方法重复执行命令 599

21.2 可撤销的“简体转繁体”插件 600

21.2.1 编写“简体转繁体”代码 600

21.2.2 将普通过程加工成可撤销的插件 600

21.3 课后思考 603

第22章 开发制作工资条工具 605

22.1 认识工资条 606

22.1.1 工资条的形式 606

22.1.2 工资条工具的基本需求 606

22.2 编写工资条程序 606

22.2.1 编写代码 606

22.2.2 测试代码 607

22.3 完善工资条工具 608

22.3.1 将工资条程序转换成工具基本思路 608

22.3.2 完善工资条工具 608

22.4 课后思考 612

第四篇 疑难解答篇 614

第23章 365个常见问题答疑(答案在随书光盘中) 614