第1章基础理论 1
         1.1  变量、常量与数据类型 1
         疑难1  正确地定义变量和数据类型有何优势 1
          数据类型与对象类型 5
         疑难2  公共变量和静态变量都有何用处 6
          公共变量与静态变量的特点 8
         1.2  程序防错要点 8
         疑难3  常见的代码错误由哪些原因造成 8
          查阅VBA帮助的方法 12
         疑难4  如何侦测代码出错,并将运行代码的错误原因发给作者 12
          程序出错的类型 13
         疑难5  如何开发完善的程序 14
          数组区域对VBA程序的影响 17
         1.3  练习与思考 18
         第2章数据查找技巧 19
         2.1  快速查找 19
         疑难6  能否按范围批量查找数值 19
         疑难7  能否将符合多条件之一的所有数据提取到新表中 22
          判断工作表是否存在的方法 23
         疑难8  可否按格式查找单元格,然后替换其格式 25
          FindFormat的使用技巧 26
         疑难9  如何找出A线的不达标人员信息 27
          单列多条件与多列多条件筛选的区别 29
         疑难10  如何查找所有的“#”并标识为上标 29
          定位单元格任意字符的方法 30
         疑难11  如何找出还款时间超过一年及未还款的客户信息 31
          日期函数Datedif的特性 32
         疑难12  可以将查找到的所有数据串联并写入剪贴板中吗 33
         疑难13  可以创建一个工具栏来方便查找吗 35
          如何区分精确匹配与模糊匹配 37
         疑难14  能否按相似度查找所有的数据 37
          利用Array向区域中一次性写入多个常量 39
         疑难15  如何在具有合并单元格的区域中多条件逐步查找 40
          通过“MergeArea”属性返回合并区域 41
         疑难16  如何查找成绩并分批发送邮件 42
          VBA中邮件正文的换行符表示法 43
         疑难17  如何在输入时逐步查找 44
          通过KeyUp事件自动执行查询 46
         2.2  跨表查找内容 47
         疑难18  能否将所有表中的完成目标者汇总到“总表” 47
          利用SpecialCells定位实现快速查找  48
         疑难19  查找每月产量冠军名单,并在窗体中显示 49
          不采用循环,一次性找出最大值所在行 50
         疑难20  如何找出工作簿中所有的外部链接且将它们转换成值 51
          如何获取工作簿中的外部链接 52
         疑难21  可否模糊查找所有部门的电话信息 52
          Target与Activecell的区别 54
         疑难22  如何实现将所有未收货款者在状态栏随机显示 54
          利用OnTime定时执行程序 56
         疑难23  可否在单元格中创建多级下拉菜单 56
          ActionControl对象的功能与限制 60
         疑难24  可否在文件夹的所有文件中查找特定信息并汇总到新表 60
         疑难25  如何统计文件夹中所有的成绩工作簿中不及格人数 64
          调用工作表函数时应如何书写区域引用型参数 65
         2.3  文件查找与转换 66
         疑难26  如何判断指定的文件是否存在 66
          判断文件是否存在的函数 67
         疑难27  如何进行深度查找且创建文件目录 68
         疑难28  可否在工作表中列出所有大于5MB的文件 70
         疑难29  如何将所有的Word文件转换成PDF文件 72
         疑难30  如何将xlsm和xlsx格式的所有文件转换成xls格式 76
         疑难31  如何在网上邻居的共享盘中查找并打开“单价表” 78
         疑难32  如何实现全盘查找且播放音乐文件 79
         疑难33  能否在文件夹的所有工作簿中执行批量替换 81
         疑难34  能否根据成绩表和模板生成Word成绩通知单 84
         2.4  图片查找与引用 87
         疑难35  如何瞬间删除当前表中艺术字和图表等以外的图片 87
          DrawingObjects与Shapes对象的区别 89
         疑难36  可以将签名图片复制到表中所有的签名处吗 89
          复制图形对象与复制数据的区别 90
          Selection代表什么 90
         疑难37  如何像vlookup引用数据一样引用图片 91
          循环弹出对话框直到用户正确操作为止的编程思路 93
         疑难38  能否对材料表分页且调用材料图片 94
         2.5  练习与思考 97
         第3章数据处理 98
         3.1  按条件定位的技巧 98
         疑难39  如何一次性定位产量大于1000的所有单元格 98
          使用定位技术减少循环语句的循环次数 99
         疑难40  可否全选至少三科不及格的学生姓名 100
          通过SpecialCells定位错误值 103
         疑难41  工作表中所有的错误值是否可隐藏起来 102
         疑难42  能否定位数值区域并转换成以“万”为单位 104
          VBA中如何处理双引号 105
         疑难43  如何定位当前表的最大值或最小值 105
          调用工作表函数并配合Find方法查找最大值 107
         疑难44  能否定位并标识高于平均值的单元格 107
          VBA中数字、汉字的大小关系 109
         疑难45  如何反向选择工作表区域 109
          辅助区的重要性 110
         3.2  数据处理及格式转换 111
         疑难46  能否一键对选区横向、纵向汇总 111
          “R1C1”引用方式的优点 112
         疑难47  如何将单词在大写、小写与首字母大写间任意切换 113
          利用StrConv函数对英文进行大写、小写和首字母大写转换 114
         疑难48  如何将二维的材料表转换成一维表 115
          使用数组函数Array简化代码 116
         疑难49  如何开发一个通用的一维表转二维表的工具 117
          对数组和区域中的值去除重复值时的区别 120
         疑难50  如何开发一个通用的二维表转一维表的工具 121
         疑难51  可否将字符串中的字母、数字和汉字分离到多单元格中 124
          利用Like运算符区分汉字、数字和字母 125
         疑难52  能否一键转换表达式为计算结果 126
          通过Evaluate方法转换表达式 127
         疑难53  数据有效性可以设置为关联的三级下拉选单吗 127
         疑难54  能否将职工信息按自定义序列排序 130
          新旧版本中Sort的差异 131
         疑难55  可以不打开工作簿而提取其数据吗 132
          在VBA中调用公式实现从未打开的工作簿中取值 134
         疑难56  可否一键保护所有的公式 134
          切换Locked 属性实现公式保护 135
         疑难57  如何实现发票金额分解 136
          MID提取文本的特点 137
         疑难58  VBA可以破解工作表密码吗 138
          表的分类 139
         疑难59  如何将不规范的时间统一为“hh:mm:ss.00”格式 139
          Format与Text函数的相同点和不同点 141
         疑难60  可以生成指定范围的不重复随机数吗 141
          Collection对象的优势 142
         疑难61  如何对工作簿减肥 143
          文件虚胖的常见原因 144
         疑难62  可否让数字在文本与数值之间快速切换 145
          在文本与数值间切换的VBA思路 146
         疑难63  如何将“/”分隔的数据进行汇总 147
          以“/”为分隔符取其左右字符的思路优化 148
         疑难64  可否一键删除工作表中所有的空白行 148
          SpecialCells方法的限制 150
         疑难65  能实现粘贴数据时跳过隐藏区吗 150
          如何确定单元格是否被隐藏 153
         疑难66  可否让单元格的值真正地四舍五入 153
         疑难67  如何对相同值进行标识着色 155
          ColorIndex属性的限制对VBA代码的影响 157
         疑难68  如何根据工资计算零钞数量 158
          获取选区第一列及已用区域的交集 160
         疑难69  可否将职工资料表一键转换成打印格式 160
          如何计算图片所在单元格的地址 162
         3.3  单元格合并技巧 162
         疑难70  能否一键合并相同且相邻的所有单元格 162
          利用DisplayAlerts属性关闭合并单元格时的提示加快代码执行速度 164
         疑难71  如何实现按产品合并产量数据表 164
          利用变量暂存数据,代替辅助区 166
         疑难72  能否改进“跨越合并”,使其居中保留所有的数据 166
          Merge方法的真正功能 167
         疑难73  可以合并同类项且分类汇总吗 168
          通过选择性粘贴格式实现合并单元格 170
          需要频繁操作单元格时的提速方法 170
         疑难74  如何实现合并时保留所有的数据,而拆分时还原数据 171
          看不见的特殊字符的应用 173
         疑难75  如何一键选择所有合并的单元格 174
          定位合并单元格 175
          查找设置对下一次查找结果有何影响 175
         疑难76  如何取消所有的合并区域,并对所有的单元格填充数据 175
          合并区域的赋值方式 176
         疑难77  能否实现撤销合并后能还原所有数据的多单元格合并 177
          合并单元格后再取消合并不丢失数据的思路 178
         疑难78  如何将指定的单元格合并到一个选区 178
          将指定单元格链接到一个选区 180
         疑难79  可以让合并单元格自动换行吗 180
          工作簿事件过程与普通过程的区别 182
         3.4  报表合并与拆分 183
         疑难80  如何合并所有工作表的数据到一个表中 183
          在复制数据时既去除公式,又不影响数值的显示状态 185
         疑难81  如何实现多表合并汇总 185
          利用相对引用公式批量合并数据,避免使用循环 187
         疑难82  如何将多个工作簿中的所有工作表合并到一个工作表中 187
          通过禁用工作簿重算提升代码效率 190
         疑难83  如何将多个工作簿数据合并到一个工作簿 190
          利用变量作为辅助进行条件判断 194
         疑难84  如何实现按条件将单个工作表拆分成多个工作表 194
          Range.AutoFilter方法的特殊性 198
         疑难85  如何将工作簿中的每个工作表转换为独立工作表 198
          在不同的Excel版本中如何选择文件格式 200
         3.5  单元格颜色的综合应用 201
         疑难86  不同版本的Excel在颜色处理方面有区别吗 201
          不同的版本中颜色差异对程序的影响 202
         疑难87  可以在Excel 2013中按颜色筛选再做扩展吗 203
          CurrentRegion与Usedrange对程序的影响 206
         疑难88  如何实现将颜色排序 207
          借用辅助区和调用老版本的Sort功能提升程序的通用性 208
         疑难89  可以按颜色对选区的数据分类汇总吗 209
          修改颜色不触发公式重算和任何VBA事件 211
         疑难90  如何用函数对单元格的背景和字体按颜色汇总 212
          如何声明可选参数 214
          IIF函数与IF语句的区别 214
         3.6  重复数据处理 214
         疑难91  可否清空重复值所在单元格并以背景色标示 214
          Countif函数在去重复值中的应用 216
          Countif函数的限制 216
         疑难92  可用红圈标示重复出现的数据吗 217
          Worksheet.CircleInvalid方法的限制 218
         疑难93  如何提取两列数据中的相同项与不同项 219
          利用Transpose函数实现区域转数组 220
         疑难94  可否一键删除重复行 221
          Range.RemoveDuplicates方法中Columns参数的限制 222
         3.6  练习与思考 223
         第4章报表打印 224
         4.1  打印设置 224
         疑难95  如何一次性设置“总表”以外的工作表的页脚 224
          选择工作表数量对页脚的影响 225
         疑难96  可否将所有工作表的打印区域设置为有数据的区域 225
          更新打印区域设置的限制 227
         疑难97  可否将订单表转换成每10行打印一页 228
          全自动批量插入分页符 230
         疑难98  如何让跨页的合并单元格在打印后能完整显示 229
          判断合并单元格是否跨页 232
         4.2  特殊打印格式设计 231
         疑难99  如何制作工资条 232
         疑难100  如何打印工资卡 234
          借用加载宏提升模板数据的安全性 237
         疑难101  VBA可以实现对工作表分页小计吗 237
          利用宏表函数Get.Document(50)获取工作表页数 242
         疑难102  如何同时打印顶端标题和底端标题 241
          计算第一个分页符所在的行号 249
         疑难103  可以借用图片实现底端标题打印吗 248
          Export与API方式将区域转换成图片的差异 251
         疑难104  可否将订单表转换成适合针式多联打印的报表格式 251
          修改CopyObjectsWithCells属性实现复制数据时忽略图形对象 254
         疑难105  如何实现双面打印 254
          手动中断程序与禁止中断程序 255
         疑难106  可以只打印活动单元格所在页吗 255
          如何计算分页符位置和当前页的序号 257
         4.3  思考与练习 257
         第5章借用事件让程序自动化 258
         5.1  工作表事件 258
         疑难107  录入M2和M3时可自动将2或3显示为上标吗 258
          Target与ActiveCell的相同点与不同点 259
         疑难108  可否在录入产品规格时自动在右边显示表达式的值 260
          修改EnableEvents属性避免事件的连锁反应 261
         疑难109  可否实时记录指定区域的修改记录 262
          让批注框自动调整大小的必要步骤 264
         疑难110  能否双击首行或首列时弹出工作表目录 264
          工作表事件与工作簿事件的分别 265
         5.2  工作簿事件 266
         疑难 111  能否在启动工作簿时自动创建工作表目录 266
          Workbook_Open事件与Auto_open宏的相同点和不同点 267
         疑难112  进入包含“货款”的工作表时可语音提示未收款客户名称吗 268
          DateDiff函数与DateDif函数的相同点和不同点 269
         疑难113  能否自动记录工作簿的已打印次数 270
          BeforePrint事件的缺陷 271
         疑难114  输入重复的工号时能否提示“已重复” 271
          创建让用户指定执行方式的对话框的三种方法 273
         疑难115  能否在状态栏显示选区中的最大值和最小值地址 273
          工作表函数Counta的参数应如何对待Range对象的默认属性值 275
         5.3  应用程序事件 275
         疑难116  可否让新建的工作簿包含“进库”、“出库”和“异常统计”三个工作表 275
          借助类实现应用程序级的事件 277
          安装加载宏的两种方法 278
         疑难117  可否新建图表时默认显示为圆角加阴影效果 279
          工作簿级与应用程序级的图表事件差异 280
         疑难118  可否选择单元格时整行与整列自动着色 280
          引用活动窗口的可见区域 282
         5.4  思考与练习 283
         第6章开发自定义函数 284
         6.1  自定义函数基础 284
         疑难119  如何开发自定义函数 284
          如何跨工作簿调用自定义函数 288
         疑难120  自定义函数在不同的版本中有何差异 288
          颜色对自定义函数的影响 289
          函数参数的数量上限 291
         疑难121  如何对自定义函数添加功能描述与参数说明 291
          通过Application.MacroOptions方法为自定义函数添加参数说明 292
         6.2  开发自定义函数 293
         疑难122  如何对区域内混杂字符串中的数字求和 293
           Excel公式对“+”的处理方式 294
         疑难123  如何分离字符串中的数值、英文和汉字 294
          正则表达式在字符处理中的优势 295
         疑难124  如何将文本混杂字符串及表达式转换为值 296
          正则表达式中如何表示数字、字母和汉字范围 297
         疑难125  如何按时间段汇总金额 298
          根据计算对象的规范性决定函数参数的个数 300
         疑难126  如何对具有分隔符的数据分类汇总 300
           Split函数产生的数组的特点 302
         疑难127  超过15位的数字如何求和 302
           Excel对数据计算的长度限制 304
         疑难128  如何根据身份证号码获取出生日期、年龄和性别 304
          身份证号码所包含的个人信息 306
         疑难129  可否将发票格式的数字金额合并且转换为大写金额 307
          声明正确的函数类型,从而优化函数的执行效率 308
         疑难130  如何突破Rank函数排名的限制 308
          去除重复值的常用方法 310
         疑难131  如何实现按数据出现次数排序 310
          Collection与字典的区别 312
         疑难132  可以用函数改变引用区域的值吗 312
          利用自定义函数修改引用区域的值的两种方法 314
         疑难133  如何对两个以逗号分隔的乱序字符串比较异同 315
          将Split函数嵌套应用从字符串中分别获取品名与数量 316
         6.3  开发具有可选参数的自定义函数 317
         疑难134  可以扩展Vlookup函数实现返回所有符合条件的值吗 317
          利用Find替代工作表函数Vlookup实现多个数据查找 318
         疑难135  可以用一个函数将人民币大小写相互转换吗 319
          通过拆分法理解代码 321
         疑难136  可以让函数的两个参数全是可选参数吗 322
          将单个参数声明为可选参数的方法 323
         疑难137  可以用函数连接内存数据和区域中所有的文本吗 324
          利用ParamArray声明不确定个数的函数参数 325
         6.4  思考与练习 326
         第7章文件与文件夹管理 327
         7.1  文件管理 327
         疑难138  能否在打开文件时自动备份文件 327
          将过程命名为“Auto_Open”使其自动执行 328
         疑难139  如何让文件打开一次后就自我销毁 328
          文件“自杀”的条件 329
         疑难140  如何一键删除3年前创建的所有文件 329
           DATEDIF与DATEDIFF的区别 330
         疑难141  可以删除18个月没有打开过的文件吗 331
          用DATEDIF计算文件闲置时间的技巧 331
         疑难142  可以在收藏夹中对当前工作簿创建快捷方式吗 332
          获取收藏夹地址的方法 333
         7.2  文件夹管理 334
         疑难143  如何瞬间删除D盘中所有的空文件夹 334
          将代表磁盘的字符串转换成磁盘对象的方法 334
         疑难144  如何获取指定目录下的文件列表 335
          Dir函数查找子文件夹的注意事项 337
         疑难145  安装多个版本的Excel时可以随心所欲地选择打开方式吗 338
          将Excel快捷方式导入“Sendto”文件夹 339
         疑难146  如何批量创建以本月每日的日期命名的文件夹 341
          利用DateSerial的纠错功能计算本月天数 342
         7.3  思考与练习 342
         第8章  VBA操作图表 343
         8.1  利用VBA批量修改图表格式 343
         疑难147  如何批量修改图表标签 343
          操作图表标签的条件 347
         疑难148  如何批量移位标签 347
          手工位移图表标签的限制 350
         疑难149  如何对图表系列设置条件格式 350
          填充图表系列的两种方法 354
         疑难150  可否一键统一图表大小并对齐 354
          图表名称的特点 356
         8.2  思考与练习 356
         第9章  VBA操作图形对象 357
         9.1  图形对象的批量操作 357
         疑难151  如何删除E列存放的图表以外的图形对象 357
          通过TopLeftCell和BottomRightCell定位图片位置 358
         疑难152  如何让所有的图形对齐所在单元格左边框 359
          通过统一Left属性对齐图片 359
         疑难153  如何一键导入工作簿所在路径下的家具图片 360
          录制“批量插入图片”的宏的缺陷 361
         9.2  批注的高级应用 362
         疑难154  如何将指定列的数据批量追加到批注中 362
         疑难155  如何批量导入图片到单元格的批注中 365
          在“打开”对话框中筛选文件格式的方法 366
         疑难156  可以对批注进行替换吗 367
          Unload Me、End和Exit Sub的区别 370
         疑难157  如何在所有的批注末尾追加日期 370
          通过设置AutoSize属性使批注框自动调整大小 371
         疑难158  如何批量修改批注的外观 372
          声明正确的变量类型及防错 374
         9.3  图形对象综合应用 374
         疑难159  如何创建图片目录与批量插入图片 374
          单元格的行高与列宽限制 378
         疑难160  如何实现输入品名时查看当前路径下的同名图片 378
          通过修改图像控件的Picture属性更新图片 379
         疑难161  如何实现批量导入图片且自动排版打印 380
          利用FSO技术中的Getextensionname获取文件后缀名 384
         疑难162  可否以模糊匹配方式批量导入图片 384
          借用通配符“*”实现模糊匹配文件名称 387
         疑难163  如何开发批量删除指定类型的图形对象的工具 387
          如何遍历控件集合 390
         9.4  练习与思考 390
         第10章窗体控件应用 391
         10.1  ActiveX控件应用 391
         疑难164  可以利用列表框强化数据有效性吗 391
          列表框相较数据有效性的灵活性 393
         疑难165  如何利用复合框引用区域的唯一值 394
          复合框调用数据的两种方法及各自的优势  396
         疑难166  能否利用复合框和列表框打造二级选单 396
          利用MouseMove事件获取组合框的值的技巧 399
         10.2  窗体设计技巧 400
         疑难167  如何用一个窗体展现多项不同的内容 400
          分页显示的两种方法 403
         疑难168  如何实现利用快捷键启用和关闭窗体 403
          借用命令按钮的Cancel属性快捷关闭窗体 405
         疑难169  如何用一个按钮执行多个功能 406
          利用PasswordChar属性隐藏敏感字符 408
         疑难170  如何让日期输入器窗体紧随活动单元格 409
          影响窗体Left、Top属性的因素 411
         疑难171  VBA可以设计彩蛋吗 412
          MouseUp事件中的Button与Shift参数的作用 414
         疑难172  如何通过窗体控制实现工作表隔行插入行 415
          通过Shift参数控制Insert方法的单元格移动方向 418
         疑难173  如何在窗体中开发鼠标右键快捷菜单 419
          创建自定义菜单的基本思路 420
         疑难174  在窗体Show状态下可以调整控件大小吗 421
          通过鼠标指针的坐标变化同步更新控件的宽度和边距 423
         疑难175  在窗体Show状态下如何调整控件的位置 423
          MouseMove事件中Button参数的应用技巧 425
         疑难176  如何检测窗体中文本框的数据有效性 426
          对文本框设置数据有效性检验的优势 427
         疑难177  能否通过代码生成窗体及控件和代码 428
          用代码操作代码的必要条件 430
         10.3  窗体与工作表之数据交互 431
         疑难178  可否将多工作表中符合条件的值显示在窗体中 431
          列表框的ColumnHeads属性的特点 434
         疑难179  如何实现通过窗体向多工作表中录入数据 434
         疑难180  如何开发日历工具箱 438
          类的主要应用领域 442
          Excel对日期计算的限制 442
         疑难181  如何实现多条件电话查询 442
          TextBox1_Change事件与TextBox1_Exit事件的异同 444
         疑难182  如何开发复选框批量管理工具 445
          区分三种复选框控件 447
         疑难183  如何让窗体控件自适应工作表数据变化 448
          用代码创建新控件 450
         疑难184  可以让拆分工作簿的列表框具有拖放功能吗 451
          控件拖放相关的事件 454
         疑难185  如何设计对文件批量重命名的工具箱 454
         10.4  练习与思考 460
         第11章功能区菜单与backstage视图设计 461
         11.1  创建功能区菜单 461
         疑难186  如何创建新选项卡及子菜单 461
          创建功能区菜单的语法与代码结构 463
         疑难187  如何在“开始”选项卡中插入弹出式菜单 466
          创建弹出式菜单的语法 467
         疑难188  如何创建对话框启动器 469
          在标签控件中让多段文字换行的技巧 471
         疑难189  如何在“视图”选项卡中插入“阅读模式”的切换按钮 472
          切换按钮与命令按钮的区别 474
         疑难190  如何将常用却又未显示在功能区中的按钮显示在“插入”选项卡中 475
          如何查看Excel内置命令的id  476
         疑难191  如何制作功能区代码模板 477
          模板的功能与制作技巧 479
         11.2  backstage视图设计 481
         疑难192  如何在“文件”菜单中添加命令按钮 481
          如何调用外部程序 483
         疑难193  能否在“文件”菜单中创建多组命令按钮 483
         11.3  思考与练习 486
         第12章用VBA访问网络资源 487
         12.1  导入网页列表 487
         疑难194  如何一键导入最近三个月人民币与美元的历史汇率 487
          通过QueryTables.Add方法和QueryTable.Refresh方法导入网页数据 488
         疑难195  可否录入城市名称后自动列出火车票信息 489
          让Worksheet_Change事件仅作用于固定区域的技巧 491
         12.2  导入不规范的网页数据 491
         疑难196  能否批量计算手机号码的归属地、区号与卡类型 491
          分析网页源代码的基本思路 493
         疑难197  可否读取网页的天气预报数据 496
          查看网页源代码的方法 497
         12.3  练习与思考 499
         第13章设计Excel通用工具 500
         13.1  开发Excel插件 500
         疑难198  如何开发定位工具箱扩展Excel定位的功能 500
          Excel定位的限制 506
         疑难199  可以利用插件一键录入常用VBA代码吗 507
          计算当前代码的行号 511
         疑难200  如何开发带功能区菜单的中英文互译插件 512
          用公式实现中英文互译 514
         13.2  封装代码 515
         疑难201  如何将已编好的两段代码封装为COM加载项 515
          安装COM加载项的三种方法 522
         疑难202  如何封装包含工作簿事件的代码 522
          封装事件过程的基本思路 525
         疑难203  如何将自定义函数封装为COM加载项 525
          VBA中调用COM加载项中的函数的方法 528
         13.3  设计安装程序 529
         疑难204  如何将COM加载项封装为EXE格式的安装程序 529
          InnoSetup软件的参数说明 533
         疑难205  可否开发具有撤销功能且可单击卸载的插件 533
          使用回调函数动态更新菜单的指定属性 537
         13.4  练习与思考 538
         第14章开发送货单套打程序 539
         14.1  罗列需求 539
         14.2  设计表格 540
         14.2.1  工作表职能分配 540
         14.2.2  设计“配置”工作表 540
         14.2.3  设计“打印界面”工作表 541
         14.2.4  设计“明细表”工作表 543
         14.3  编写代码 543
         14.3.1  为品名、品牌和型号创建下拉列表 543
         14.3.2  开发小写金额转大写金额的函数 546
         14.3.3  生成送货单号 546
         14.3.4  打印并保存数据 547
         14.3.5  批量打印历史数据 548
         14.3.6  保存并清空数据 550
         14.3.7  创建数据透视表 550
         14.3.8  功能说明 551
         14.4  设计菜单 551
         14.5  测试功能 552
         14.5.1  测试“生成送货单号” 553
         14.5.2  测试品名、品牌与型号的录入方式 553
         14.5.3  测试“打印当前货单” 554
         14.5.4  测试“打印历史记录” 555
         14.5.5  测试“创建透视表” 556
         14.5.6  测试对话框启动器 557
         14.5.7  总结
      · · · · · ·     (
收起)