科技>计算机>办公软件
Excel2010VBA入门与提高

Excel2010VBA入门与提高"

作者:黄朝阳
ISBN:9787121224621
定价:¥79.0
字数:845千字
页数:524
出版时间:2014-04
开本:16(185*260)
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书着重于Excel VBA的基础知识和技巧,通过153个实例为读者展示应用VBA解决实际问题的思路和方法,并展示了常规VBA数据处理的要点,帮助读者学会解决实际问题的思考方式。阅读本书后,读者可以掌握VBA的基本语法、数据处理、自定义函数的编写、功能区设计等重要技术,并将其应用于实际工作中,从而极大地提升工作效率和数据处理的正确性。 书中的每个案例采取疑难描述、解决方案、操作方法、原理分析、知识扩展五个步骤进行讲解,力图在解决问题的同时让读者可以通晓其思路和原理。所有的案例均在Windows 7环境下使用Excel 2010编写完成并通过测试,其中的绝大部分代码可适用于Excel 2003和Excel 2007。

前言

前 言 感谢您选择“Excel 疑难千寻千解”丛书之《Excel 2010 VBA入门与提高》! Excel具有强大的数据处理能力。由于其操作的便捷性和数据展现的直观性,被越来越多的需要与数据处理打交道的用户所使用。也有越来越多的用户将Excel作为日常管理中必不可少的工具。正因为如此,VBA编程开发技术也受到越来越多的用户的青睐。Excel自2003版本以来至2010版本,VBA已经升级为7.0版本,其功能逐渐被丰富,性能得到了极大的提升。通过使用VBA,可以实现数据的极速处理,让您从繁重的数据工作中脱离出来;通过使用VBA,可以让您方便地实现行政、人事、供应链、财务等方面的基础管理工作。熟练掌握VBA技术可以极大地提升您的工作效率,让您有更多的时间投入到核心业务中去,为您的职业发展道路提供更多的可能。 本书由153个实用的案例构成,由浅入深、由易到难地向您展示VBA在实际工作中的应用。每个案例都配有详细的原理解释、代码注释以及解题思路分析,让您能够轻松掌握VBA编程技术的精髓,以更快地将其中的技术应用到实际工作中。 丛书介绍 “Excel疑难千寻千解”丛书是由Excel技巧网(Exceltip.net技术社区)的负责人、微软最有价值专家(MVP)黄朝阳先生策划并组织编写的一套系列书籍。 Excel技巧网旨在重点推广Excel 2010及今后更高版本的应用,并为广大Excel爱好者提供一个内容充实、分类清晰、经典实用、精彩纷呈,便于大家学习和交流的平台。社区成立不久便吸引了众多微软MVP和有志于推广电子表格应用技术的高手驻足,长期为网友免费解答疑难问题,并勤于将精彩的答疑帖子按其所涉及的知识和应用两个维度,整理成为原创技术文章。 社区设有讨论、文章、资源三大技术专区,并按照Excel的功能归属将主题分为基础应用、数据透视表、条件格式、函数与公式、图表与图形、VBA、SQL in Excel、综合应用等方面,本丛书的各读本正是基于相近的主题分类。 本丛书由黄朝阳、王建发、陈国良、陈树青、荣胜军、李懿等微软MVP,以及罗刚君、李术彬、林盘生、章兰新等多位社区资深版主联手打造,将来还将邀请更多的高级会员加盟参与丛书其他读本的创作。其中,《Excel 2010 操作与技巧》《Excel 2010函数与公式》《Excel 2010 VBA编程与实践》《Excel 2010 SQL完全应用》已先于第一批出版,近期还将陆续推出《Excel 2010图表与图形》《Excel 2010 VBA入门与提高》等读本。 得益于多年来社区答疑的磨砺,作者们将丰富的实战经验付诸笔端,精心设计了上千案例,将Excel方方面面的知识点融入其中。每个案例都采用一般用户遇到疑难时最可能的提问方式和应用场景对问题进行描述,提供具有针对性的解决方案和详尽的操作步骤,并配合以原理分析和知识扩展环节,既授人以鱼,又授人以渔。丛书全系提供“疑难”加“知识点”的特色目录索引,方便读者根据需要快速地查找。对于渴望学习和拥有新知识的Excel用户来说,与其千百次地找寻问题答案,不如静心地读此丛书一卷。 编写本丛书的过程中,我们得到了电子工业出版社计算机图书出版分社张慧敏等多位编辑的大力支持,特在此表示深切的谢意! 读者对象 本书使用Excel 2010软件进行编写,但是在编写过程中,作者特意注重程序的通用性,尽量保证每个案例的解决方案都通用于Excel 2003、Excel 2007和Excel 2010。 本书通过153个案例,包含3个综合应用案例,阐释了VBA基础编程技术以及其核心的技巧。适合所有的办公制表人士,特别是需要提升工作效率及需要深入研究VBA者学习之用。如果您没有VBA基础,那么本书是一本极其有用的入门级教材,它将由浅入深向您展现VBA编程技术,帮助您理解VBA的核心编程技术,并能够在实际工作中使用VBA提高工作效率。如果您已经有VBA基础,那么本书是一本帮助您整理知识点并拓展思路的提高教材。本书将向您提供完整的VBA知识架构、全面的解决方案以及解决问题的思考方法。如果您已经是一位VBA资深开发人员,本书可以作为您随手的参考书,书中所提供的代码只需要稍作改动,即可应用于实际问题。 阅读指南 本书包括12章,涉及Excel VBA的每个方面。其中,第1章至第4章为Excel VBA基础知识。第5章为问题解决思路。第6章至第10章为VBA的扩展应用,包括数据转换、自定义过程和函数的开发、对话框交互操作、控件和窗体的应用以及自定义功能区。第11章为程序的错误调试。第12章为综合开发实战。每章都根据所涉及的知识点的不同,选取了实用的案例,并为读者准备了相应的思考和练习题。 详细的章节内容如下。 第1章 认识VBA 本章主要介绍如何通过录制宏获取VBA代码,并且介绍了VBA的基础知识、基本语法以及基本语句。帮助读者入门VBA编程,为之后章节的学习提供理论基础。 第2章 数据的基本处理 本章介绍如何使用VBA代码对Excel的单元格以及单元格区域进行操作,其中包括单元格的读取、写入、查找、格式设置等操作,并使用了常见的案例阐述如何使用这些基础操作解决实际问题。 第3章 VBA常用函数和语句 本章主要介绍VBA中常用的函数和语句,并结合前两章所学的知识和案例进一步说明函数和语句的使用方法。 第4章 多表数据处理 本章说明了跨工作表、跨工作簿进行数据处理的基本方法,以及如何应用事件程序实现Excel中“自动完成”的功能。 第5章 数据处理的综合应用 本章是前4章所学知识点的总结和综合应用,进一步阐述数据处理的解决思路,并引入数组以进一步提高数据处理的速度。 第6章 数据的转换 本章介绍如何实现Excel数据与其他数据形式的转换,其中包括如何从Access、文本文件中导入数据,以及如何将Excel的数据导出到所需的数据格式中。为实现跨数据平台系统的开发提供了基础。 第7章 自定义过程和函数的开发 本章介绍如何开发自定义过程和函数,并将开发成果应用于工作表,从而教会读者如何将类似的数据处理合并为同一个过程或者函数进行处理,并引用参数传递,使程序更具通用性。为开发更复杂的程序提供必备的技术。 第8章 Excel对话框操作 本章向读者介绍如何通过VBA对话框操作实现Excel程序与用户间的交互,为实现更好的用户体验提供有力的工具。 第9章 控件和窗体的应用 本章介绍了如何使用控件和窗体使Excel程序更专业,并通过使用控件和窗体实现更多丰富的功能。为打造专业的Excel程序提供专业的界面设计。 第10章 自定义功能区 本章介绍如何定制Excel的功能区,以及功能区控件的基本操作。为设计专用的Excel程序工作簿提供了可能性,并为Excel插件的开发提供了便捷的用户交互的窗口。 第11章 程序的错误调试 本章介绍常见的错误调试的方法以及VBE提供的程序调试工具,帮助读者自行解决在编程中遇到的各种错误和问题。同时也介绍如何使用错误的自动处理开发完善的程序。 第12章 综合开发实战 本章以制作通用的工具、调查表及信息收集系统、简易收发管理程序为切入口,向读者展示开发综合型Excel VBA程序的思路、方法和具体实现的步骤。 本书约定 为了熟悉本书对鼠标操作、键盘指令等描述方式,从而更顺畅地阅读本书,您有必要了解以下内容。 本书中表示连续的多个菜单指令时,使用右箭头“→”进行连接,例如:单击“开发工具”选项卡→“插入”→“按钮(窗体控件)”,表示依次单击“开发工具”选项卡的“插入”按钮,在弹出的子菜单中选择“按钮(窗体控件)”菜单。 本书中表示鼠标操作时,均使用标准的表示方法。其中“指向”表示将鼠标指针移到对象之上,且不单击任何按钮;而“点击”特指利用鼠标左键单击目标;“右键点击”表示利用鼠标的右键单击对象;“双击”表示快速按下鼠标左键两次;“拖放”则表示按下鼠标左键不松开的状态下拖动鼠标,拖到目标区域后再放开鼠标左键。 本书中表示按键时使用括号“【】”号来表示,例如:“按组合键【Ctrl+Shift+Enter】”表示同时按下键盘上的Ctrl键、Shift键和Enter键。而“【F5】”则表示按下键盘上方的“F5”键。 本书的VBA代码均不区分大小写,在编写代码时可以随意,但代码录入到代码窗口后,VBA会将代码自动转换成其内置的大小写形式或者变量声明时的大小写形式,带引号的文本字符串和变量名除外。 本书特点 本书与市场上其他Excel VBA书籍有很大的不同,文体结构新颖,案例贴近实际,讲解深入透彻。主要表现在以下几方面: 场景式提问 本书从成千上万的网友提问中精心归纳、提炼出各类问题,并还原为贴近真实的求助语言及案例,方便读者搜寻与实际工作相似的问题。 开创式结构 本书案例中的“解决方案”环节是对问题的思路解说,结合“操作方法”环节中的步骤让人更容易理解。“原理分析”环节则主要解释所使用代码的工作原理或者详细解释思路。“知识扩展”环节包括与案例相关的知识点的补充,可拓展读者的视野,同时也有利于理解案例本身的解决思路。 渐进式章节 精心设计的章节和案例,使本书中各章节知识点循序渐进,方便读者巩固已学的知识,又不会因为知识点的缺失而造成阅读和学习的困难。 启发式描述 本书注重培养读者解决问题的思路,以最朴实的思维方式结合启发式的描述,帮助读者发现规律、总结规律和运用规律,从而启发读者快速找出问题的解决方法。 学习方法 本书是VBA入门与提高的教材,其宗旨在于不但介绍如何编写VBA程序,更着重介绍如何编写VBA程序解决实际工作的疑难,以及对同类的问题提供解决思路。 书中前4章的结构是从易到难,由基础到提高,建议读者顺序阅读,以掌握VBA以及VBA操作Excel的基本方法。从第5章开始,其结构虽然是从易到难,但章节之间相互独立,即可以从任意章节开始学习,不需要遵照从前至后的顺序阅读。 本书配有示例文件,读者需将示例文件放置于D盘“千寻千解VBA”目录下,方可保证程序正确运行。本书中所有代码均针对书中案例所编写,不具备通用性,但只需略做修改即可应用于各类实际问题。本书所有代码在Windows 7中文版和Office 2010中文版下运行通过。 售后服务 本书由Excel技巧网(ExcelTip.Net技术社区)出品,读者在阅读过程中有任何疑难或者建议、BUG反馈等都可以到社区发帖,包括求助、交流,也可以在本社区下载与本书相关的文档。社区专门为本丛书开辟了一个专区提供编读往来,地址如下: http://www.exceltip.net/forum-75-1.html 同时,本书也配备了专门的QQ群做售后服务,群号公布于上述网页中,读者可以申请加入群中与作者进行面对面的交流。 作者与致谢 本书由黄朝阳策划,李懿负责编写与统稿。 本书在编写过程中,得到了荣胜军、陈树青、林盘生、薛宇锋、王建发、陈果良、罗刚君、李术彬、章兰新等多位Exceltip.net社区版主和会员的支持与帮助,在此向他们表示衷心的感谢。 尽管作者们对书中的案例精益求精,但疏漏仍然在所难免,如果您发现书中的错误或某个案例有更好的解决方案,敬请登录社区网站向作者反馈,我们将尽快在社区中给出回复,且在本书再次印刷时修正。 再次感谢您的支持! 作 者

目录

目 录 第1章 认识VBA 1 第1节 认识宏 1 疑难1 如何开启“开发工具”选项卡 1 ※在Excel 2007中开启“开发工具”选项卡※ 2 疑难2 如何录制和运行宏 3 ※宏代码保存的位置※ 4 疑难3 如何编辑宏 5 ※利用按钮运行宏※ 8 疑难4 如何保存带有宏的工作簿 8 疑难5 如何屏蔽保存工作簿时的隐私警告 9 疑难6 如何设置宏的安全性 10 疑难7 如何创建和使用数字证书签名 12 第2节 认识VBE 15 疑难8 如何打开VB编辑器 15 疑难9 VB编辑器包含哪些窗口 16 ※VBE各窗口简介※ 16 ※VBE各窗口位置的调整※ 17 ※VBE各窗口的显示或隐藏※ 17 疑难10 VB编辑器包括哪些工具栏 18 第3节 VBA代码编写及帮助信息 18 疑难11 如何创建VBA程序 18 ※VBA代码编写格式※ 20 疑难12 如何运行及调用VBA程序 21 ※立即窗口的作用※ 22 疑难13 如何导入或导出VBA代码 22 疑难14 如何获取VBA帮助 24 疑难15 如何使用对象浏览器 25 ※对象浏览器※ 26 第4节 VBA基础 26 疑难16 如何定义变量使VBA程序更灵活 26 ※声明变量※ 27 ※变量名的命名规则※ 27 ※VBA的数据类型※ 27 ※数据类型的分类及表示方式※ 28 ※变量的赋值※ 29 ※变量的读取※ 30 ※VBA常量※ 30 ※定长字符串与变长字符串※ 30 ※隐式声明※ 31 疑难17 如何使多个程序共享变量 31 ※作用域※ 32 ※全局变量※ 32 ※局部变量※ 32 ※模块级变量※ 32 ※同名变量※ 33 疑难18 如何进行变量类型的转换 33 ※VBA中的类型转换函数※ 34 ※整数的类型转换※ 35 ※字符的类型转换※ 35 ※数据类型的隐式转换※ 35 疑难19 如何防止变量名称拼写错误 36 ※Option Explicit语句※ 36 ※强制显式声明变量设置※ 37 ※使用编译功能查错※ 37 疑难20 如何利用VBA进行计算 38 ※文本连接※ 39 ※算术四则运算※ 39 ※指数运算※ 39 ※整除※ 39 ※计算余数※ 39 ※比较运算※ 39 ※运算优先级※ 40 ※在文本中表示双引号("”)※ 40 疑难21 如何分段计算奖金系数 40 ※IF分支结构※ 41 ※逻辑运算符※ 44 ※Select…Case分支结构※ 45 ※Select…Case分支结构的条件※ 46 ※Select和IF分支结构的区别※ 46 疑难22 如何检验文本是否以字母开头 47 ※Like运算符※ 48 ※VBA比较模式※ 48 疑难23 如何判断某个数是否为质数 49 ※Do…Loop循环※ 50 ※退出Do…Loop循环※ 52 ※For…Next循环※ 53 ※退出For…Next循环※ 54 ※死循环※ 54 ※退出多层循环※ 54 ※Goto语句和行标签※ 54 第5节 练习与思考 55 第2章 数据的基本处理 56 第1节 单元格的选取与赋值 56 疑难24 如何选取单元格 56 ※对象的概念※ 57 ※对象的属性和方法※ 57 ※单元格对象Range的表示方法※ 57 ※单元格对象Cells的表示方法※ 58 ※单元格对象的Select方法※ 59 ※使用对象变量表示单元格对象※ 59 ※Evaluate方法表示单元格对象※ 59 ※Evaluate方法的简写模式※ 60 ※Evaluate方法的一般模式与简写模式的区别※ 60 疑难25 如何选取单元格区域 60 ※以地址表示矩形单元格区域对象※ 61 ※以对角单元格表示矩形单元格区域对象※ 61 ※不规则单元格区域的表示※ 62 ※使用Union方法获取合并区域※ 62 ※使用Intersect方法获取多个区域的交集※ 63 疑难26 如何读取单元格的值和显示的值 64 ※单元格对象的Value属性※ 64 ※单元格对象的Text属性※ 65 ※自动列出成员※ 65 ※单元格的数字格式属性※ 66 疑难27 如何进行单元格批量赋值 66 ※利用Value属性给单元格赋值※ 67 ※For Each…Next循环※ 68 ※使用For Each…Next循环的注意事项※ 68 ※利用Value属性给单元格区域赋值※ 69 ※单元格(Range)对象的Address属性※ 69 疑难28 如何向单元格输入公式 70 ※利用Formula属性给单元格输入公式※ 71 ※Formula属性和Value属性的联系与区别※ 71 ※利用FormulaR1C1属性给单元格输入公式※ 72 ※R1C1引用样式的规则※ 72 ※通过代码实现粘贴值※ 73 ※使用VBA替代公式实现计算※ 73 疑难29 如何在VBA中使用工作表函数进行计算 73 ※WorksheetFunction对象※ 74 ※VBA中使用工作表函数※ 75 ※获取VBA中工作表函数的帮助※ 75 第2节 单元格的格式设置 75 疑难30 如何快速设置标题行格式 75 ※With语句※ 76 ※With语句的嵌套※ 76 ※Interior对象※ 77 ※Font对象※ 78 ※单元格的对其方式※ 78 ※Selection对象※ 78 ※利用录制宏获取格式设置代码※ 79 ※通用的格式设置对象※ 79 疑难31 如何批量生成上标 79 ※Characters对象※ 80 ※Font对象的 Superscript属性※ 80 ※设置Characters对象Font的注意事项※ 80 ※Characters属性的通用性※ 81 疑难32 如何快速将列进行分组 81 ※Columns对象和Rows对象※ 82 ※单列和单行的表示※ 82 ※多列和多行的表示※ 82 ※Group方法和Ungroup方法※ 82 ※单元格对象的EntireColumn属性和EntireRow属性※ 82 ※单元格区域的Columns属性和Rows属性※ 83 ※Outline对象※ 84 疑难33 如何批量合并相同单元格 84 ※Range的Merge方法合并单元格※ 85 ※VBA运行时关闭警告※ 85 ※多行中相同的内容处理※ 86 疑难34 如何创建图片批注 86 ※批注(Comment)对象※ 87 ※批注的添加与删除※ 87 ※FillFormat对象※ 88 ※On Error语句※ 88 第3节 单元格的定位与查找 89 疑难35 如何利用VBA程序定义条件格式 89 ※VBA条件格式的原理※ 90 ※表示整行的方法※ 91 ※日期函数DateSerial※ 91 ※利用工作表事件实时设置格式※ 91 疑难36 如何一次性替换所有的错误值 91 ※Range对象的Find方法※ 92 ※参数省略表示法※ 93 ※查找格式※ 94 ※使用Is Nothing判断对象是否初始化※ 94 ※IsError函数※ 94 ※SpecialCells方法※ 95 ※Find方法的一般形式※ 96 ※CVErr函数※ 97 疑难37 如何获取最后一行数据的行数 97 ※使用Find方法查找最后的单元格※ 99 ※Find方法按行查找和按列查找的区别※ 99 ※获取工作表总行数※ 100 ※单元格对象的End属性※ 101 ※End属性的局限性※ 101 ※其他获取最后数据行行号的方法※ 102 疑难38 如何按颜色查找单元格 102 ※单元格对象的Clear方法※ 103 ※动态表示数据区域※ 104 ※单元格对象的Copy方法※ 104 ※单元格对象的选择性粘贴PasteSpecial方法※ 104 第4节 数据的整理 105 疑难39 如何按条件隐藏数据行 106 ※行和列的隐藏※ 107 ※单元格对象的AutoFilter(自动筛选)方法※ 107 ※单元格对象的AdvancedFilter(高级筛选)方法※ 109 疑难40 如何批量删除空行 109 ※单元格删除Delete方法※ 110 ※单元格删除的通用算法※ 110 ※利用Union获取整个单元格区域进行统一操作※ 111 ※Union方法的注意事项※ 111 ※单元格插入Insert方法※ 112 疑难41 如何实现逐行输入 112 ※Protect方法和Unprotect方法※ 113 ※单元格的Locked属性※ 114 ※允许VBA修改保护后的工作表※ 114 疑难42 如何用VBA创建下拉列表 115 ※Validation对象※ 115 ※Validation对象的Add方法※ 116 疑难43 如何使用VBA对数据按自定义序列进行排序 117 ※单元格对象的Sort方法※ 118 ※添加和删除自定义序列CustomList ※ 119 ※使用自定义序列排序※ 119 ※Sort对象※ 120 ※排序字段SortField※ 120 ※按颜色排序※ 121 ※设置排序区域SetRange方法※ 121 第5节 练习与思考 121 第3章 VBA常用函数和语句 122 第1节 数学函数 122 疑难44 如何用VBA进行四舍五入 122 ※VBA的Round函数※ 123 ※VBA的Round函数与工作表Round函数的区别※ 123 ※在Office软件中使用自定义函数替代VBA的Round函数※ 125 疑难45 如何随机筛选指定个数的记录 125 ※随机数Rnd函数※ 126 ※不重复地挑选数据※ 127 ※Rnd函数语法※ 127 ※伪随机数概念※ 127 ※Randomize语句※ 127 疑难46 如何利用VBA转换十六进制数字 127 ※VBA的Hex函数※ 128 ※利用工作表函数进行进制转换※ 128 ※以文本形式表示数字※ 129 ※单元格的Prefix属性与Excel的TransitionNavigKeys属性※ 129 ※其他进制数字在VBA中的表示方法※ 129 第2节 文本函数 129 疑难47 如何判断某文本中是否包含指定字符 129 ※Instr函数※ 130 ※InstrRev函数※ 131 疑难48 如何批量替换文本中的指定字符 131 ※Replace函数※ 132 ※单元格对象的Replace方法※ 133 疑难49 如何根据身份证号码判断性别 133 ※Left、Right和Mid函数※ 135 ※Len函数※ 135 疑难50 如何替换文本中指定位置的字符 135 ※MID语句※ 136 ※使用MID语句的注意事项※ 136 ※MID语句的优势和局限性※ 137 第3节 日期和时间函数 137 疑难51 如何获取和设置计算机中的当前日期 137 ※Date函数和Date语句※ 138 ※DateSerial函数※ 138 ※Time函数和Time语句※ 139 ※Time函数和Time语句※ 139 ※Now函数※ 139 ※VBA日期的实质※ 139 疑难52 如何计算合同到期日期 140 ※DateAdd函数※ 140 疑难53 如何提取身份证号码中的出生日期并计算年龄 141 ※DateDiff函数※ 142 ※DateDiff函数中interval参数“w”和“ww”的区别※ 143 ※VBA的DateDiff函数和工作表函数DateDif的区别※ 143 疑难54 如何将日期转换成英文格式 144 ※Format函数※ 145 ※特殊的英文格式日期※ 146 ※使用DatePart函数获取日期信息※ 146 第4节 其他常用函数和语句 147 疑难55 如何求得文本计算式的计算结果 147 ※去除有规律但内容不定的文本※ 148 ※String函数※ 148 ※Evaluate方法计算表达式的值※ 149 ※利用VBScript的Eval函数计算表达式的值※ 149 疑难56 如何获取当前Windows登录用户名 149 ※Environ函数※ 150 ※获取所有的系统环境变量※ 150 疑难57 如何为宏创建快捷键 150 ※Application.OnKey方法※ 151 ※Application.OnKey方法的注意事项※ 152 ※Application.SendKeys方法※ 152 疑难58 如何定时运行程序 152 ※Application.OnTime方法※ 153 ※使用Application.OnTime重复执行程序※ 154 ※取消Application.OnTime定时器的方法※ 154 疑难59 如何用VBA在工作表中创建文件清单 154 ※Dir函数※ 155 ※Dir函数查找路径下所有的文件※ 156 ※GetAttr函数获取文件属性※ 156 ※SetAttr语句修改文件属性※ 156 疑难60 如何用VBA将文件复制到另一个文件夹下并改名 156 ※FileCopy语句※ 158 ※Name…As语句※ 158 第5节 练习与思考 158 第4章 多表数据处理 159 第1节 跨工作表的数据处理 159 疑难61 如何按模板快速生成指定数量的工作表 159 ※工作表对象(Worksheet)及其表示方法※ 161 ※工作表集合和工作表※ 162 ※工作表常用的基本属性※ 162 ※工作表的添加与复制※ 163 ※工作表对象(Worksheet)与单元格对象(Range)的关系※ 163 ※Application.DisplayAlerts属性※ 164 ※工作表的删除※ 164 疑难62 如何进行跨表数据查询 165 ※跨表操作单元格※ 166 ※连续查找功能※ 166 疑难63 如何进行跨表数据录入 167 ※ListObject对象※ 168 ※ListObject对象的表示方法※ 169 ※ListColumn对象※ 169 ※向ListObject中添加新数据※ 170 ※使用VBA添加ListObject对象※ 171 ※Excel中数据存储的结构※ 171 疑难64 如何按照关键字批量创建超链接 173 ※Hyperlink对象※ 174 ※创建超链接※ 175 ※删除超链接及访问超链接※ 175 ※创建超链接打开指定的宏代码※ 175 第2节 跨工作簿的数据处理 175 疑难65 如何将多个工作表保存至单独的工作簿中 176 ※工作簿对象(Workbook)及其表示方法※ 177 ※Application、Workbook、Worksheet和Range的关系※ 177 ※工作簿(Workbook)对象的常用属性※ 178 ※工作簿的新建和保存※ 178 ※获取当前文件的目录※ 180 ※跨工作簿复制工作表※ 180 ※使用Application.PathSeparator获取系统路径分隔符※ 180 ※SaveAs和Save的区别※ 180 疑难66 如何读取其他工作簿的数据 181 ※打开关闭的工作簿※ 182 疑难67 如何导入多个工作簿中的工作表 183 ※导入多个工作簿中的工作表※ 185 ※Application.ScreenUpdating属性※ 185 疑难68 如何将当前工作簿备份至指定目录 185 ※工作簿对象(Workbook)的SaveCopyAs方法※ 186 ※SaveCopyAs方法和SaveAs方法的区别※ 186 第3节 工作表和工作簿的事件程序 186 疑难69 动态改变当前选中行的颜色 186 ※事件的概念※ 187 ※Worksheet的Selection_Change事件※ 188 ※启用Excel的事件※ 188 ※工作表事件一览※ 188 疑难70 如何实现双击标题行即对该列降序排序 189 ※工作表双击事件(BeforeDoubleClick)※ 189 疑难71 如何完善数据有效性验证 190 ※工作表对象的Change事件※ 191 ※判断数据是否符合有效性设置※ 191 ※利用VBA撤销操作※ 191 ※事件循环※ 192 ※禁用事件※ 193 疑难72 如何动态隐藏工作表 193 ※工作表(Worksheet)对象的Select方法※ 194 ※工作表激活事件(Activate)和失去激活状态事件(Deactivate)※ 196 ※工作簿事件※ 197 ※类模块和Me变量※ 198 疑难73 如何实现必填数据为空则无法保存 199 ※工作簿保存事件(BeforeSave)※ 200 疑难74 如何进行个性化的工作表保护 200 ※工作簿的Workbook_SheetChange事件※ 201 疑难75 如何实现用户登录机制 201 ※工作簿打开事件(Open)※ 203 ※登录的机制※ 204 ※auto_open和auto_close※ 204 第4节 练习与思考 204 第5章 数据处理的综合应用 205 第1节 计算及统计 205 疑难76 如何计算个人所得税 205 ※个人所得税计算的步骤※ 207 ※实现简单计算的思考步骤※ 207 疑难77 如何进行销售合计汇总 207 ※使用循环结合工作表函数进行数据合计※ 208 ※循环结构的建立※ 209 ※循环结构的建立※ 209 ※多层嵌套循环结构的建立※ 211 ※循环的简化※ 213 ※以编程的方式思考问题※ 213 疑难78 如何将15位身份证号码升为18位 213 ※身份证号码解读※ 214 ※利用字符串截取进行查询※ 215 第2节 数据查询与汇总 215 疑难79 如何罗列满足条件的所有数据 215 ※内嵌分支的循环结构※ 217 ※罗列数据※ 217 ※循环结构建立的误区※ 217 疑难80 如何在多个工作表中查找指定的数据 217 ※多表查询※ 219 疑难81 如何获取不重复的数据 219 ※去除重复值(RemoveDuplicates)方法※ 220 ※使用VBA去除重复值※ 222 ※巧用Exit语句退出循环以加快速度※ 222 ※循环中判断条件的确立※ 222 ※使用Find方法代替循环遍历查找※ 223 疑难82 如何对比两个表的数据 223 ※两表比较的步骤※ 225 疑难83 如何按单列汇总数据 225 ※按单列汇总数据的步骤※ 227 ※可互换的循环嵌套※ 227 ※多个循环结构的合并※ 227 ※学会简单直接的思考方式※ 229 疑难84 如何按多列汇总数据 229 ※按多列汇总数据的步骤※ 231 疑难85 如何制作多级下拉列表 231 ※创建多级下拉列表的思考步骤※ 233 疑难86 如何获取交叉查询结果表 234 ※交叉汇总表※ 236 ※建立交叉汇总表的步骤※ 236 ※建立交叉汇总表的优化※ 237 疑难87 如何按单列汇总多个工作表 237 ※汇总多个工作表※ 239 ※汇总数据表位置不同的多个工作表※ 239 疑难88 如何汇总列数不确定的多个工作表 239 ※合并汇总(Consolidate)方法※ 240 ※Array函数※ 241 ※Evaluate方法构造数组※ 242 ※使用VBA汇总多个列数不相等的工作表的步骤※ 244 疑难89 如何按指定列分拆工作表 244 ※拆分工作表的步骤※ 246 ※判断工作表是否存在的步骤※ 246 ※Is运算符比较对象变量※ 246 疑难90 如何制作动态汇总的数据查询表 247 ※动态汇总※ 249 ※多列连接※ 250 疑难91 如何利用数据透视表汇总数据 250 ※数据透视表缓存对象(PivotCache)※ 252 ※访问数据透视表缓存对象(PivotCache)※ 252 ※数据透视表对象(PivotTable)※ 252 ※创建数据透视表※ 253 ※访问数据透视表对象※ 253 ※数据透视表的字段(PivotField)※ 253 ※数据字段※ 254 疑难92 如何进行多工作簿汇总 254 ※汇总多个工作簿※ 257 ※使用GetObject函数获取对象※ 257 第3节 数组处理 258 疑难93 如何建立数组加快程序运行 258 ※数组的基本概念※ 259 ※数组的声明※ 260 ※数组的赋值与数组数据的读取※ 260 ※Ubound和Lbound函数获取数组的上下限※ 261 ※For Each…Next循环遍历数组的注意事项※ 261 ※计算程序运行的时间※ 262 ※数组处理的极限※ 262 疑难94 如何使用数组处理列数较多的数据 262 ※建立列数下标的数组※ 265 ※使用枚举Enum※ 265 疑难95 如何利用数组实现分列 266 ※Split函数※ 267 ※将动态数组写入单元格※ 268 ※数组的维度与单元格行列的关系※ 269 ※Option Base语句※ 269 ※Join函数※ 269 疑难96 如何利用数组提取不重复值 270 ※利用数组提取不重复值列表的步骤※ 271 ※Redim Preserve语句※ 271 ※使用工作表函数Transpose对数组进行转置※ 272 ※Filter函数※ 273 ※使用Filter函数提取不重复值的步骤※ 274 ※空数组的判断※ 274 ※Filter函数的精确筛选※ 274 ※Filter函数在数据比对中的应用※ 275 疑难97 如何进行条件数量不确定的多条件数据查找 275 ※使用数组进行多条件查找※ 277 第4节 练习与思考 278 第6章 数据的转换 279 第1节 数据的导入与导出 279 疑难98 如何导入Access数据库的数据 279 ※利用ADO连接数据库※ 281 ※利用ADO执行SQL查询并在Excel中输出结果※ 281 ※SQL语句※ 281 ※ADO连接不同的数据库※ 281 疑难99 如何利用VBA批量导入文本文件 283 ※用Open语句和Close语句打开和关闭文件※ 285 ※Input语句和Line Input语句读取文本文件※ 285 ※EOF函数※ 286 ※Tranpose函数将嵌套的一维数组转换为二维数组※ 286 疑难100 如何将xls格式工作簿批量转换为xlsx格式 288 ※使用HasVBProject属性判断工作簿是否有代码※ 289 ※禁止打开工作簿时执行程序※ 290 疑难101 如何将Excel按指定格式导出为文本文件 290 ※Open语句创建文本文件※ 292 ※使用Print语句向文件中写入指定的内容※ 292 ※Write语句※ 292 ※Index函数取二维数组的子集※ 293 疑难102 如何利用VBA批量发送邮件 293 ※CDO组件※ 295 ※CDO.Message对象※ 295 ※CDO.Message.Configuration对象※ 295 ※前期绑定与后期绑定※ 296 ※New关键字创建对象※ 297 ※添加邮件的附件※ 298 第2节 图形与图表 298 疑难103 如何利用VBA批量插入图片 298 ※Shapes、Shape和ShapeRange※ 300 ※Shapes对象插入图形的方法※ 301 ※Excel的坐标※ 302 ※图形大小的调整※ 302 ※获取图片的原始大小※ 303 ※将图片按比例缩放至单元格※ 303 ※图片批量插入的步骤※ 304 ※Pictures集合※ 304 疑难104 如何利用VBA生成图表 305 ※ChartObjects集合和ChartObject对象※ 306 ※Chart对象※ 307 ※数据系列(Series)对象※ 307 ※添加图表的其他方法※ 308 疑难105 如何将工作表数据批量导出为图片 309 ※Copy、Cut和Paste方法※ 310 ※图表对象(Chart)的Export方法※ 311 ※利用PPT导出图片※ 311 第3节 练习与思考 312 第7章 自定义过程和函数的开发 313 第1节 自定义过程和函数的开发实例 313 疑难106 如何编写带参数的过程 313 ※使用含有参数的过程供多个过程调用※ 315 ※含有参数的过程的声明方法※ 316 ※编写含有参数的过程的方法※ 317 ※使用Application.Run调用过程※ 317 疑难107 如何编写处理数组排序的过程 317 ※ByVal和ByRef的区别※ 318 ※选择排序※ 319 ※数组排序的方法简介※ 320 疑难108 如何编写个人所得税计算函数 320 ※声明自定义函数※ 321 ※自定义函数的返回值※ 322 ※自定义函数和过程的区别与联系※ 322 疑难109 如何编写获取某列最后非空单元格行号的函数 322 ※Volatile方法※ 323 ※易失性函数※ 323 疑难110 如何编写获取最小值的自定义函数 323 ※使用ParamArray关键字声明数组参数※ 325 ※IsMissing函数※ 325 ※IsArray函数※ 326 ※函数的嵌套与递归※ 326 疑难111 如何编写条件查询的函数 328 ※使参数适用于数组和单元格区域※ 329 ※TypeName函数和VarType函数※ 329 ※查找指定位置的数据※ 331 ※返回指定错误值的函数※ 331 疑难112 如何编写函数按条件汇总关闭的工作簿中的数据 332 ※自定义函数参数的跨表引用※ 333 ※条件求和函数的累加原理※ 334 ※使用Evaluate方法将引用转换为数组※ 334 疑难113 如何使用自定义函数返回满足条件的所有记录 334 ※以数组作为返回值的自定义函数※ 336 ※Application.Caller属性※ 336 疑难114 如何设置自定义函数的说明 337 ※Application.MacroOptions方法※ 338 第2节 练习与思考 339 第8章 Excel对话框操作 340 第1节 Excel对话框操作实例 340 疑难115 如何创建信息提示对话框 340 ※MsgBox函数※ 341 ※MsgBox函数buttons参数的组合※ 342 ※Application.Cursor属性※ 342 ※Application.SatusBar属性※ 343 疑难116 如何制作具有交互功能的提示对话框 343 ※MsgBox函数的返回值※ 344 疑难117 如何创建具备输入功能的对话框 345 ※VBA.InputBox函数※ 346 ※InputBox函数的返回值※ 346 疑难118 如何反复提示对话框直到数据合法 346 ※IsNumeric函数※ 347 ※Application.InputBox方法※ 348 疑难119 如何创建对话框的帮助文档 349 ※CHM文件及HTML Help Workshop※ 354 ※在Excel VBA中调用CHM文件※ 354 ※创建VBA项目的帮助系统※ 355 ※使用语句打开帮助文件※ 355 疑难120 如何显示打开文件对话框 355 ※Application.GetOpenFilename方法※ 356 ※FileDialog对象※ 358 ※FileDialog对象的常用属性※ 358 ※使用FileDialog对象的属性Filters添加筛选※ 358 ※FileDialog对象的Show方法和Execute方法※ 359 ※遍历通过FileDialog对象选择的文件※ 359 ※Application.GetSaveAsFilename方法※ 359 ※Application.Dialog对象※ 359 第2节 练习与思考 359 第9章 控件和窗体的应用 360 第1节 控件的基础 360 疑难121 如何在工作表中插入ActiveX控件 360 ※ActiveX控件※ 360 ※Excel中常用的ActiveX控件※ 361 ※编辑ActiveX控件※ 361 ※通过代码访问ActiveX控件※ 362 ※工作表中窗体(表单)控件和ActiveX控件的区别※ 362 疑难122 如何更改ActiveX控件的属性 362 ※ActiveX控件的属性※ 363 疑难123 如何创建ActiveX控件的事件程序 363 ※ActiveX控件的事件※ 364 ※ActiveX控件的常用事件※ 364 疑难124 如何使用日期选择控件向单元格输入日期 365 ※DTPicker控件※ 366 ※DTPicker控件的时间和日期的切换※ 367 ※DTPicker控件的日期输入方式※ 367 ※DTPicker控件的Value属性与Change事件※ 367 ※使用DTPicker控件实现日期选择并赋值给单元格※ 367 ※注册DTPicker控件※ 368 疑难125 如何创建可以动态模糊查询的下拉列表 369 ※TextBox控件和ListBox控件※ 371 ※ListBox控件的ListFillRange属性和List属性※ 371 ※ListBox控件的多列显示※ 372 ※ListBox控件的值※ 372 ※模糊查询下拉列表※ 373 ※控件的选用※ 373 ※ListBox和ComboBox控件※ 373 疑难126 如何批量设置控件属性 374 ※CallByName函数※ 376 ※CallByName函数获取子对象※ 376 ※CallByName批量修改对象的属性※ 376 ※灵活使用自定义过程※ 376 第2节 窗体和控件的深入应用 377 疑难127 如何创建并显示窗体 377 ※窗体对象及其属性※ 378 ※窗体对象的显示与关闭※ 378 ※窗体对象的装载与显示※ 378 ※窗体对象的卸载与隐藏※ 379 ※窗体的显示模式※ 379 疑难128 如何在窗体中插入控件 379 ※控件工具栏※ 381 ※控件的顺序※ 381 ※控件的组合※ 382 疑难129 如何利用窗体向工作表中录入数据 383 ※窗体控件与工作表的交互※ 384 ※窗体的事件※ 385 ※窗体中Controls集合访问控件※ 386 ※控件的排列※ 386 ※使用控件数组进行赋值※ 386 疑难130 如何利用窗体创建实时筛选浮动工具栏 387 ※Default和Cancel按钮※ 390 ※提高单元格隐藏的速度※ 390 ※自制浮动工具栏※ 390 ※动态显示与隐藏窗体※ 391 疑难131 如何移动不同列表框中的项目 391 ※ListBox的AddItem方法和RemoveItem方法※ 395 ※ListBox控件的MultiSelect属性※ 395 ※ListBox控件的Value属性※ 396 ※ListBox控件的ListIndex属性※ 396 ※VBA实现ListBox项目的移动※ 396 疑难132 如何利用复合框制作工作簿/表导航 397 ※复合框(ComboBox)控件※ 398 ※利用复合框制作二级下拉列表※ 399 疑难133 如何利用窗体制作向导系统 399 ※多页(MultiPage)控件※ 401 ※多页控件的页面※ 401 ※使用代码更改当前显示的页面※ 402 ※Application. SheetsInNewWorkbook属性※ 402 疑难134 如何创建具有窗体交互的函数 403 ※创建具有窗体交互的函数的步骤※ 405 ※ListBox控件的Selected属性※ 406 疑难135 如何利用窗体制作登录界面 406 ※使用窗体作为操作界面※ 408 ※隐藏Excel工作簿※ 409 疑难136 如何动态地创建控件以显示查询结果 409 ※使用代码为窗体添加控件※ 412 ※通过名称控件排列※ 412 ※使用类模块为按钮批量添加事件※ 413 疑难137 如何动态创建窗体 414 ※VBComponents集合※ 417 ※VBComponent对象※ 417 第3节 练习与思考 418 第10章 自定义功能区 419 第1节 自定义功能区实例 419 疑难138 如何添加选项卡和内置控件 419 ※功能简介※ 421 ※使用Excel选项自定义功能区※ 421 疑难139 如何创建工作簿级的自定义选项卡 421 ※Excel工作簿的实质※ 424 ※XML简介※ 424 ※customUI.xml※ 426 ※常用的功能区控件及通用属性※ 426 ※tabs控件和tab控件※ 427 ※group控件※ 427 ※命令控件※ 427 ※内置控件的ID※ 428 ※customUI.xml中控件和属性的命名规则※ 428 ※使用customUIEditor工具制作选项卡※ 428 疑难140 如何在功能区添加按钮并运行VBA程序 430 ※回调(CallBack)※ 432 ※IRibbonControl对象※ 432 疑难141 如何动态更改功能区控件属性 432 ※动态属性※ 436 ※IRibbonUI对象和Invalidate方法※ 436 ※设置IRibbonUI对象※ 437 ※Invalidate的实质※ 437 疑难142 如何添加自定义功能区列表控件的选项 437 ※dropDown控件添加选项※ 440 ※dropDown控件的onAction属性※ 441 ※获取dropDown控件选中选项的另一个方法※ 441 疑难143 如何实现功能区控件之间的交互 442 ※切换按钮(toggleButton)控件的getPressed属性※ 445 ※切换按钮(toggleButton)控件的onAction属性※ 445 ※切换按钮之间的交互※ 445 ※条件筛选的自定义过程※ 446 第2节 练习与思考 446 第11章 程序的错误调试 447 疑难144 如何利用出错信息判断工作表是否存在 447 ※On Error 语句※ 448 ※Err对象※ 449 ※运行时错误的利用※ 449 ※代码标签※ 449 疑难145 如何在中断模式下调试程序 450 ※中断模式※ 451 ※程序的测试※ 451 疑难146 如何逐步调试程序 451 ※逐语句运行※ 452 疑难147 如何为程序设置断点调试程序 452 ※断点※ 453 疑难148 如何运用监视窗口监控变量的值 453 ※监视窗口※ 454 ※使用“立即窗口”※ 455 疑难149 如何自定义错误 455 ※Err对象的Raise方法※ 456 疑难150 如何进行程序出错的自动处理 457 ※处理错误的两种方式※ 458 ※Resume语句※ 459 第12章 综合开发实战 460 疑难151 如何制作通用工具 460 ※通用工具的主程序设计※ 466 ※使用加载宏制作通用工具※ 466 ※加载宏工具的安装※ 466 疑难152 如何建立调查及数据收集系统 467 ※复杂的多功能程序的设计※ 473 疑难153 如何建立简易的收发管理系统 473 ※设计微型数据管理系统※ 494 ※使用同一个窗体操作不同的数据表※ 494 ※类模块中定义过程和函数※ 494

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个