加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 《别怕,Excel VBA其实很简单》_ExcelHome

《别怕,Excel VBA其实很简单》_ExcelHome.pdf

《别怕,Excel VBA其实很简单》_ExcelHome

谁废江河万古流
2012-12-26 0人阅读 举报 0 0 暂无简介

简介:本文档为《《别怕,Excel VBA其实很简单》_ExcelHomepdf》,可适用于工程科技领域

 VBA让效率飞起来 当加班成为常态改变在所难免十年前的我加班是家常便饭的事每天成堆的工作总是压得我喘不过气来我和同事们就像一枚枚棋子蜷缩在办公室里在电脑前紧张地忙碌着不知目睹了多少个华灯初上到灯火阑珊的夜晚。年月的一天我的目标是完成生产成本核算系统的最后一个报表模块的开发。有了它就可以方便地查询和计算每一种产成品在任意一个工序上的成本明细项目还可以在不同月份之间进行结转、对比。我喜欢在晚上写程序因为晚上安静能让我的思路飞扬让代码随着键盘声快速地推进等待大功告成的那一刻出现。你不会以为我是程序员吧?不事实上我是财务部的成本主管。我就职于一家制造型企业有IT部门但是没有程序员。说白了我就是千百万个成天和Excel表格“耳鬓厮磨”的一员。我们公司的产品有几十种涉及的材料有几千种每个产品又有N道工序每道工序由数量不等的作业人员进行生产。我的工作就是计算和分析所有产成品和半成品的生产成本包括材料、人工和杂费。计算依据主要包括生产部门提交的各产品工序的工时记录表仓库提交的材料进销数据HR部门提供的工资单明细。这样的计算任务并不轻松计算目标复杂原始数据繁多有些甚至不是电子文档而且只有我一个人。再而且时间非常紧张因为每个月交报表的时间是固定的。也许你想问这么复杂的计算用Excel?你们公司难道没有ERP吗?有的而且声名不小价格不菲。但在我看来公司的ERP虽有一定的作用不过却存在很多局限性局部线条偏粗又有些笨拙很难给出我需要的结果。所以我必须借助Excel。序回想中学时的《政治》课本上说资本家为了榨取更多的剩余价值有两种方法:一是延长工作时间二是提高生产效率。我现在清楚地认识到为了及时准确地完成计算任务方法同样有两个:加班或者提高计算效率。我当然不愿意加班。同时加班的产出也是有限的并不能解决任务重时间紧的根本性问题。所以我必须提高效率。一次自动核算成本系统的开发经历让我受益无穷自从接了公司的生产成本核算系统这个活我的Excel水平突飞猛进。从最初的焦头烂额到现在的从容应对我通过不断优化计算方法完善成本核算模板减轻工作量。有人说学好Excel可以以一当十。年轻的我凭着一腔热情还真没有注意到:公司的产品规模在不断扩大计算任务随之加重我依然可以按时交报表。由于我舍得下力气去研究直到后来协助工作的同事被上司调派去负责别的内容。我的想法很简单多做就是多学习付出一定有回报。我的成本核算模板按产品区分主要使用的是Excel的函数、公式和数据透视表可以实现成本计算的半自动化输入原始数据结果自动生成。原始数据一部分来源于上个月的成本数据一部分从ERP中导出。模板完善后我的工作重心不再是计算而是处理这样那样的原始数据。这是一件相当繁琐无聊的事情。导出、保存、打开、复制、粘贴、切换、关闭奈何我APM的手速因为涉及几百个文件的数据处理至少得一两天时间处理过程中还很容易出错。问题是公司的产品数量一直在增加并处于变化中这让我再次想起了“水管工的故事”。于是我决定继续挖掘Excel的潜力其实也是我自身的潜力。两个月以后我用ExcelVBA代码替代了的成本原始数据处理工作。只要按一次键数据就能乖乖地按规定的路线在几百个Excel文件之间流转就像欢乐的浪花在美丽的小河中荡漾。说真的没有什么事情比看着自己写的代码正常运行让复杂无比的工作灰飞烟灭的感觉更有成就感了。 APM指每分钟击键次数。了解到ExcelVBA与众不同的威力后我的激情再一次被点燃我决定要自己写一个成本计算分析系统我希望以后每个月的成本计算分析都是全自动的。经过持续不断地学习和研究我想今天晚上终于可以达成了这一目标了。透视VBA的知与行转眼间迈入年了。我们都生活在信息社会中生活在一个前所未见的充斥着海量数据的年代。无论是企业还是个人每天都要接触无数以数据为载体的信息。数据甚至已经成为了企业或个人的替代品。不相信?一家你未曾亲身到访甚至未曾接触过其产品的企业对你来说意味着什么?它无非会成为财务报表或统计报表上的一堆林林总总的数据诸如生产规模、员工人数、利润水平……一个你未曾谋面未曾听说的人对你来说意味着什么?就好像进入婚恋网站搜索对象这些陌生人只不过是个人指标数据的集合体诸如身高、体重、职业、收入……想要在这样一个时代生存处理数据的能力是必须的因为实在有太多数据要处理了。广大Excel的用户尤其是Excel的重度用户肯定对此深有体会。作为ExcelHome的站长和一名培训讲师我接触过许多各式各样的数据处理要求也体验或亲身参与过许多基于Excel的解决方案。这些宝贵经验让我对Excel提供的各项功能有更深的理解。在Excel中制作计算模型主力军非函数与公式莫属。多个不同功能的函数在公式中灵活组合可以创造无数种算法再加上数组和名称的配合使用几乎可以完成绝大多数计算任务。要论数据分析和报表生成的便捷不得不提到数据透视表这是Excel最厉害的本领厉害在于其功能强大的同时使用起来却非常简单。但如果只会这两样仍然会有很多时候感到束手束脚究其根本在于以下几方面。函数和公式只能在其所在的位置返回结果而无法操作数据表格的任意位置更不能操作表格的任意属性(比如设置单元格的填充色或删除单元格)。函数和公式、数据透视表都需要规范的数据源但往往我们工作量最大之处就在于获取和整理原始数据。比较麻烦的情况之一就是原始数据很可能是位于某个文件夹下的几十份表格。使用函数和公式、数据透视表制作的解决方案难以具备良好的交互性能。因为它们只能存在于单元格中与普通数据是处于同一个平面的。对于业务流程较为复杂、数据项经常变化的计算很难处理。无法迅速省力地完成大量的重复操作。所以永远不要忘记Excel还有一个杀手级的功能VBA。VBA是什么怎么用在本书中会给出详细的答案。这里我只想说只有这个功能才真正让Excel成为了无所不能的数据处理利器才让我们有机会可以彻底地高效办公。很多人认为VBA很神秘认为会写代码是自己不可能实现的事情。虽然我不能保证人人都能学会VBA但我可以保证如果你能学会函数和公式你也能学会VBA因为它们的本质是相同的。函数和公式无非是写在单元格中的一种简短代码罢了。所以如果你曾经觉得自己连Excel函数和公式也搞不定现在却能熟练地一口气写下好几个函数嵌套的公式那么你学VBA不会有问题。在我眼里VBA就好像“独孤九剑”。这武功最大的特点是遇强则强遇弱则弱。如果你每天面对的数据非常有限计算要求也很简单那么用VBA就是高射炮打蚊子了。但如果你是Excel重度用户经常需要处理大量数据而Excel现有功能无法高效完成计算任务时就可以考虑让VBA上场一举定乾坤。今时不同往日互联网的发展使得技术和经验的分享非常方便。如果说十年前你想用VBA实现任何一个小功能都需要先掌握全部语法然后一行一行代码自己写的话那么现在ExcelHome上有太多太多现成的实现不同目标的VBA代码许多代码甚至已经到了拿来即用的程度。所以如果你的时间非常有限也没有兴趣成为一个Excel开发者你只需要快速地学习掌握ExcelVBA的基本语法然后到互联网上去淘代码来用到自己的工作中。如果你投入的时间多一点点你会发现你很快就能看懂别人的代码然后做出简单的修改后为自己所用。这个过程是不是和你当年学Excel函数和公式的经历很类似?等你做到这一步你会发现原来公司里那个很厉害的会写代码的Excel高手的秘密武器原来是这样的啊以后可以少请他吃饭以换取他为你写个小功能了……因为工作的关系我接触过很多信息化工具也了解过一些编程语言我发现所有工具的本质是相通的。每种工具都有其优缺点有其专属的场合。这种专属并非指不可替代而是说最佳选择。因此我不赞成VBA至上的观点因为尽管VBA无所不能但如果我们事事都写代码那还要Excel本身的功能干嘛?我也反对VBA无用的观点你暂时用不上怎么能说明此工具无用?甚至说你根本就不会用这工具怎么知道你用不上?用VBA是为了更高效。不用也是因为同样的目的。但是会了VBA你将拥有高效的更多种选择。不会你就没有。这一点高效人士都懂的。ExcelHome创始人、站长周庆麟年月日本书以培养学习兴趣为主要目的遵循实用为主的原则深入浅出地介绍ExcelVBA的基础知识。书中摒弃了枯燥乏味的科技说明文风格避开难学少用的粗枝繁叶利用生动形象的比拟和浅显易懂的语言去描述ExcelVBA中看似复杂的概念和代码借用实用的例子来了解编程的思路和技巧为读者提供练习和思考的空间讲练结合让读者亲自体验VBA编程的乐趣及方法。本书配套示例文件和视频教程请到ExcelHome网站(http:wwwexcelhomenet)获取。阅读对象如果你是使用Excel的工作人员长期以来被无穷的数据折磨得头昏脑胀希望通过学习VBA找到高效的解决方法如果你是在校大中专院校学生有兴趣学习ExcelVBA为今后的职业生涯先锻造一把利剑如果长期以来你一直想学VBA却始终入门无路那都是本书最佳的阅读对象。当然在阅读本书之前你得对Windows操作系统和Excel有一定的了解。写作环境VBA虽然依附于Office软件但它本身是一门独立的编程语言因此VBA在不同版本Office中的用法几乎没有差异。为照顾多数Excel用户的使用习惯本书以WindowsXP和Excel为写作环境。但使用Excel和Excel的用户不必担心因为书中涉及的知识点绝大多数在Excel和Excel中同样适用。后续服务在本书的编写过程中尽管作者始终尽心尽力但仍无法避免存在不足之处。如果你在阅读过程中有任何意见或建议敬请反馈给我们我们将根据你宝贵的意见或建议进行改进继续努力争取做得更好。如果你在学习过程中遇到困难或疑惑也可以和我们交流。你可以通过以下任意一种方式和我们互动:.访问http:clubexcelhomenet通过论坛和我们进行交流.访问http:texcelhomenet参加ExcelHome免费培训班前言.如果你是微博控可以关注我们的微博:http:weibocomiexcelhome(新浪)http:tqqcomexcelhome(腾讯)。那里会向你推荐很多优秀的学习资源向你介绍很多适用的Excel技巧。致谢本书由周庆麟策划及统稿由罗国发进行编写。感谢美编马佳妮完成了全书的精彩插画这些有趣的插画让本书距离“趣味学习轻松理解”的目标更进了一步。ExcelHome论坛管理团队和ExcelHome免费在线培训中心教管团队长期以来都是ExcelHome图书的坚实后盾他们是ExcelHome中最可爱的人。最为广大会员所熟知的代表人物有朱尔轩、林树珊、刘晓月、吴晓平、方骥、杨彬、朱明、郗金甲、黄成武、孙继红、王建民、周元平、陈军、顾斌等在此向这些最可爱的人表示由衷的感谢。在本书正式出版前有幸邀请到多位ExcelHome会员进行志愿预读他们以高超的技术和无比的细心帮助我们对书稿做出了进一步的完善。本次预读活动由吴晓平和赵文妍负责团队成员为(排名不分先后)陈智勇、刘冠、潘新水、曲天非、邵武、向绪霞、许春富、燕铁艳、叶兆锋、张建元和张敏。在此特向预读团队表示最真诚的感谢!衷心感谢ExcelHome的百万会员是他们多年来不断的支持与分享才营造出热火朝天的学习氛围并成就了今天的ExcelHome系列图书。ExcelHome简介ExcelHome(http:wwwexcelhomenet)是微软在线社区联盟成员是一个主要从事研究、推广以Excel为代表的MicrosoftOffice软件应用技术的非营利性网站。自年由KevinZhou(周庆麟)创建以来目前已成长为全球最具影响力的华语Excel资源网站之一拥有大量原创技术文章、视频教程、Addins加载宏及模板。ExcelHome社区是一个颇具学习氛围的技术交流社区。截止到年月注册会员人数逾万同时也产生了位Office方面的MVP(微软全球最有价值专家)中国大陆地区的OfficeMVP被授衔者大部分来自本社区。现在社区的版主团队包括数十位祖国大陆及港澳台地区的Office技术专家他们都身处各行各业并身怀绝技!在他们的引领之下越来越多的人取得了技术上的进步与应用水平的提高越来越多的先进管理思想转化为解决方案并被部署。ExcelHome是Office技术应用与学习的先锋通过积极举办各种技术交流活动开办完全免费的在线学习班创造了与众不同的社区魅力并持续鼓励技术的创新与进步。网站上的优秀文章在微软(中国)官网上同步刊登让技术分享更加便捷。另一方面原创图书的出版加速了技术成果的传播共享从年至今ExcelHome已累计出版Office技术类图书数十本在Office学习者中赢得了良好的口碑。ExcelHome专注于Office学习应用智能平台的建设旨在为个人及各行业提升办公效率、将行业知识转化为生产力进而实现个人的知识拓展及企业的价值创造。无论是在校学生、普通职员还是企业高管在这里都能找到您所需要的。创造价值这正是ExcelHome的目标之所在。Let′sdoitbetter!  第章走进ExcelVBA的世界不会Excel的人真伤不起做不完的表神速的“超人” 你是怎样做工资条的 走自己的“录”让别人重复去吧 什么是宏 用宏录下Excel操作 让录下的操作再现一遍 还可以怎样执行宏 给宏设置快捷键 将宏指定给按钮 将宏指定给常用工具栏按钮 是谁“挡住”了宏宏为什么不能工作了怎样修改宏安全级 VBAExcel里的编程语言 录制宏不能解决的问题 让工资条一“输”到底 VBA编程让你的表格更加灵活 什么是VBA 宏和VBA有什么关系第章开始VBA编程的第一步 揭开神秘面纱背后的真面目 程序保存在哪里 应该怎样编写程序目录别怕ExcelVBA其实很简单目录 程序里都有什么 代码 过程 模块 对象 对象的属性 对象的方法 关键字 VBA的编程环境VBE 打开VBE编辑器 主窗口 菜单栏 工具栏 工程资源管理器 属性窗口 代码窗口 立即窗口 试写一个简单的VBA程序 添加或删除模块 动手编写程序 解除疑惑一“键”倾心第章ExcelVBA基础语法 语法编程的基础 这个笑话很凉快 VBA也有语法 学习VBA语法难吗 VBA里的数据类型 打酱油的故事 走进Excel的商店 VBA中有哪些数据类型别怕ExcelVBA其实很简单目录 存储数据的容器:常量和变量 常量和变量 使用变量 使用常量 使用数组 集合、对象、属性和方法 对象就像冰箱里的鸡蛋 对象的属性 对象的方法 连接的桥梁VBA中的运算符 算术运算符 比较运算符 连接运算符 逻辑运算符 应该先进行什么运算 内置函数 VBA中的函数 VBA中有哪些函数 控制程序执行VBA的基本语句结构 If…Then语句 SelectCase语句 For…Next语句 DoWhile语句 DoUntil语句 ForEach…Next语句 其他的常用语句 Sub过程基本的程序单元 关于VBA过程 编写Sub过程需要了解的内容 从另一个过程执行过程 过程的作用域 自定义函数Function过程别怕ExcelVBA其实很简单目录 试写一个函数 使用自定义函数 怎么统计指定颜色的单元格个数 声明函数过程规范的语句 合理地组织程序让代码更优美 代码排版必不可少的习惯 怎样排版代码 注释让代码的意图清晰明了第章常用对象 与Excel交流需要熟悉的常用对象 VBA编程与炒菜 VBA是怎么控制Excel的 应该记住哪些对象 一切由我开始最顶层的Application对象 ScreenUpdating属性 DisplayAlerts属性 EnableEvents属性 WorksheetFunction属性 给Excel梳妆打扮 她和她的孩子们 管理工作簿了解Workbook对象 Workbook与Workbooks 认识Workbook需要了解的信息 实际操作都能做什么 ThisWorkbook与ActiveWorkbook 操作工作表认识Worksheet对象 认识Worksheet对象 操作工作表 Sheets与Worksheets 核心至关重要的Range对象别怕ExcelVBA其实很简单目录 多种方法引用Range对象 还可以怎样得到单元格 操作单元格还需要了解什么 亲密接触操作单元格 不止这些其他常见的对象 名称Names集合 单元格批注Comment对象 给单元格化妆 典型的技巧与示例 创建一个工作簿 判断工作簿是否打开 判断工作簿是否存在 向未打开的工作簿中录入数据 隐藏活动工作表外的所有工作表 批量新建工作表 批量对数据分类 将工作表保存为新工作簿 快速合并多表数据 汇总同文件夹下多工作簿数据 为工作表建立目录第章Excel事件让Excel自动响应你的行为让Excel自动问好事件VBA里的自动开关事件过程编写事件过程Worksheet事件关于Worksheet事件常用的Worksheet事件Worksheet事件列表别怕ExcelVBA其实很简单目录Workbook事件关于Workbook事件常用的Workbook事件Workbook事件列表别样的自动化MouseMove事件不是事件的事件典型的技巧与示例一举多得快速录入数据 我该监考哪一场让文件每隔一分钟自动保存一次第章用户界面设计在Excel中自由地设计界面关于用户界面控件必不可少的调色盘使用控件将工作表当作画布在工作表中使用窗体控件在工作表中使用ActiveX控件窗体控件和ActiveX控件的区别与用户交互简单的输入输出对话框InputBox函数Application对象的InputBox方法MsgBox函数Application对象的FindFile方法Application对象的GetOpenFilename方法Application对象的GetSaveAsFilename方法Application对象的FileDialog属性构建用户窗体自己设计交互界面关于用户窗体添加一个用户窗体别怕ExcelVBA其实很简单目录设置窗体的属性在窗体上添加控件显示窗体关闭窗体使用控件用键盘控制控件改造Excel现有的界面更改标题栏的程序名称显示或隐藏菜单栏显示或隐藏工具栏设置窗口其他设置典型的技巧或示例设计一张调查问卷职工信息管理界面一个简易的登录窗体第章代码调试与优化VBA中可能会发生的错误编译错误运行时错误逻辑错误VBA程序的种状态设计模式运行模式中断模式Excel已经准备好的调试工具让程序进入中断模式为程序设置断点使用Stop语句使用立即窗口别怕ExcelVBA其实很简单使用本地窗口使用监视窗口错误处理的艺术GoErrorGoTo标签OnErrorResumeNextOnErrorGoTo让代码跑得更快一些合理地使用变量避免反复引用相同的对象尽量使用函数完成计算去掉多余的激活和选择合理使用数组关闭屏幕更新VBA就像一座神秘的城堡对很多人来说都是神秘的。很多人想走进VBA的世界却始终找不到打开大门的钥匙。什么是VBA?怎样学习VBA?面对这些问题让我们从身边开始一起探索一起解答。第章走进ExcelVBA的世界别怕ExcelVBA其实很简单走进ExcelVBA的世界第章不会Excel的人真伤不起 做不完的表小张报表还没弄好?今天上午十点的例会我要用抓紧时间。还有出勤统计表和订单明细表中午十二点前一起交到我办公室……春眠不觉晓我在做报表夕阳无限好还在做报表举头望明月通宵达旦做报表。哎洛阳亲友如相问就说我在做报表……数据采集、数据处理、数据分析……这是小张每天都在做的工作。老板的需求和基础数据一样每天都在改变而小张做表的速度却永远也跟不上老板敏捷的思维。不同的数据相同的操作。小张感叹:“和数据打交道的日子真烦!”单位来了新同事接手小张平时的工作。 神速的“超人”什么?小张平时要弄一个星期的工作你一个小时就完成了?你不是在和我开玩笑吧?听着音乐聊着天我和妹妹把情谈。离开表的日子一个字:爽!终于告别上万条的数据离开乱七八糟的报表脱离“苦海”的日子小张的日子要多舒心有多舒心。可是……别怕ExcelVBA其实很简单走进ExcelVBA的世界第章电话里老板那可以撑爆整幢大楼的赞扬声和新同事腼腆的笑容让小张心里很不是滋味:“一个小时和一星期中间的差距不仅只是时间。不会Excel的人真伤不起!” 你是怎样做工资条的小张决定向新同事取取经……   那些表你是怎么做的?能不能分享一下你的方法?同事打开一张工资表如图‑所示让小张把它做成工资条如图‑所示。图‑ 工资表图‑ 工资条别怕ExcelVBA其实很简单走进ExcelVBA的世界第章小张熟练地拿起鼠标选中工资表头所在行→复制→选中第二条工资记录所在行→单击右键→插入复制单元格。完成后又按同样的操作进行第三条第四条……新同事看完后笑了:“如果是条记录的工资表这样做需要多久?”小张苦笑也只能苦笑。工作的内容不少但都是重复的操作。而这种重复不但枯燥而且费时尽管小张天天时时刻刻都在做表却永远也跟不上老板的节奏。工资条每个月都在做的吧?把你的方法先给我说说。将工资表制成工资条不就是在每条工资记录前添加相同的表头吗?复制粘贴就是了。别怕ExcelVBA其实很简单走进ExcelVBA的世界第章 走自己的“录”让别人重复去吧都是重复的操作为什么不录制一个宏?录制宏?什么是宏?怎么录?新同事的建议让小张感到很茫然。面对小张满脑子的疑问新同事耐心地给他解释并示范操作过程…… 什么是宏就像用摄像机录下来的视频在Excel里宏就是Excel用户使用宏录制器录下的一组操作。选中工资表头所在行→复制→选中工资记录所在行→单击右键→插入复制单元格这是小张制作工资条时重复的操作。      如果把这些操作用宏录制器录下来制作其他工资条时就不用再重复操作了。别怕ExcelVBA其实很简单走进ExcelVBA的世界第章 用宏录下Excel操作完成上述设置后就可以录制宏了如图‑所示。录制宏前需要进行一些简单的设置如图‑所示。图‑ 录制宏前的设置选中A单元格即工资表头所在行的第一个单元格。单击【停止录制】工具栏上的【相对引用】按钮。依次执行【工具】→【宏】→【录制新宏】菜单命令打开【录制新宏】对话框。更改宏名为“生成工资条”单击【确定】按钮打开【停止录制】工具栏。别怕ExcelVBA其实很简单走进ExcelVBA的世界第章这样宏就录制好了。图‑ 用宏录下Excel操作选中第行即工     资表表头所在行。单     击鼠标右键。选中第行即    第条工资记录    所在行。单击鼠     标右键。选中A即新粘    贴的表头所在行     的第一个单元格。单击【停止录制】     按钮停止录制宏。执行【插入复制单元格】     菜单命令。执行【复制】菜单命令。别怕ExcelVBA其实很简单走进ExcelVBA的世界第章 让录下的操作再现一遍如果要继续插入新的工资表头就继续执行宏。图‑ 执行宏录制完成后通过下面的方法运行宏如图‑所示。 执行宏后插入的工资表头。 依次执行【工具】→【宏】→【宏】菜单命令打开【宏】对话框。 选中A 即表头所在行的第一个单元格。 在【宏名】列表框中选中宏名单击【执行】按钮。学会使用录制和执行宏代替手工完成重复操作后小张很高兴。他发现工作中很多问题都可以借助宏来提高工作效率。可是他不明白相对引用和绝对引用的区别你能分别录制不同的宏执行它们找到它们之间的区别吗?练习小课堂别怕ExcelVBA其实很简单走进ExcelVBA的世界第章也可以在录制宏后进行设置如图‑所示。 还可以怎样执行宏【宏】对话框里的“执行”按钮就是运行宏的开关。不够方便不够快捷是这个开关的缺点。如果你不喜欢这个开关可以选择其他执行宏的方法。 给宏设置快捷键录制宏前可以在【录制新宏】对话框里为宏设置快捷键如图‑所示。 参考答案绝对引用:如果使用绝对引用在执行宏的过程中无论选中了哪个单元格宏都在特定的单元格中执行录制的操作。相对引用:如果使用相对引用在执行宏的过程中将以活动单元格为A单元格宏在相对于活动单元格的特定单元格中执行录制的操作。如果你想让录制的宏可以在任意区域中使用就使用相对引用。图‑ 录制宏前为宏设置快捷键在这里给宏指定快捷键【相对引用】按钮没有选中将使用绝对引用默认为绝对引用。单击【停止录制】按钮结束录制宏。选中【相对引用】按钮录制的宏使用相对引用。别怕ExcelVBA其实很简单走进ExcelVBA的世界第章给宏设置快捷键后就可以按下相应的组合键执行宏。注意:因为给宏指定的快捷键会覆盖Excel默认的快捷键。例如:把<CtrlC>指定给某个宏那在Excel中按下<CtrlC>组合键将不再执行复制操作。图‑  录制宏后给宏设置快捷键依次执行【工具】→【宏】→【宏】菜单命令(或按<AltF>组合键)关闭【宏】对话框。选中宏的名称单击【选项】铵钮。设置执行宏的快捷键为<CtrlR>。单击【确定】按钮。别怕ExcelVBA其实很简单走进ExcelVBA的世界第章 将宏指定给按钮不便记忆不易上手。快捷键虽快却不实用。无论出于什么目的都应尽量让设计的表格显得直观一些。小王这个宏你设有快捷键吗?是什么?这个宏的快捷键是什么?怎么想不起来了?如果有这样一块遥控板来控制宏那该多好。别怕ExcelVBA其实很简单走进ExcelVBA的世界第章如果是已经添加的按钮可以用鼠标右键单击它在右键菜单中执行【指定宏】菜单命令打开【指定宏】对话框再将宏指定给按钮如图‑所示。拿过电视机的遥控板扫一眼就知道该按下哪个按钮来加减声音按下哪个按钮来调节频道。如果你担心忘记为宏设置的快捷键可以绘制一块直观形象的“遥控板”通过单击按钮来执行宏。图‑所示为将宏指定给按钮的方法。图‑ 将宏指定给按钮不管它们多么相似但这个不是【控件工具箱】而是【窗体】工具栏。选择【按钮】控件。按下鼠标左键的同时拖动鼠标画出一个按钮。松开鼠标后在【指定宏】对话框中选择宏的名称单击【确定】按钮。图‑ 打开指定宏对话框别怕ExcelVBA其实很简单走进ExcelVBA的世界第章当按钮呈编辑状态(如果不是编辑状态可以先用鼠标右键单击它)时单击按钮表面更改标签为“生成工资条”调整按钮的大小和位置完成后单击按钮外的任意区域退出对按钮的编辑如图‑所示。完成上述设置后即可单击按钮执行宏如图‑所示。图‑ 更改标签后的按钮图‑ 单击按钮执行宏还可以用同样的方法将宏指定给图片或自选图形等。 将宏指定给常用工具栏按钮将宏指定给常用工具栏按钮的操作步骤如图‑所示。别怕ExcelVBA其实很简单开始VBA编程的第一步第章优秀的运动员总是非常注重起跑的第一步。准确的姿势恰到好处的起跑时间再加上中间的努力拼搏总能带给运动员优秀的成绩。比赛的最终赢家不但有过硬的运动天赋而且一定经过长期学习和坚持训练的过程。想成为一名优秀的VBA编程者最先应该了解什么?让我们一起来学习。第章开始VBA编程的第一步别怕ExcelVBA其实很简单开始VBA编程的第一步第章 揭开神秘面纱背后的真面目 程序保存在哪里从小张的故事里走出来我们正式开始学习ExcelVBA。既然录制的宏就是VBA程序那让我们打开第章小节中录制的宏所在的工作簿文件一起研究研究。这个窗口是VBE窗口打开它在右面的【代码窗口】中可以看到一串代码这就是使用宏录制器录下来的操作以代码的形式保存在模块里。动手录几个不同的宏比一比宏的代码有什么共同的地方?把你总结的结论写下来然后再继续后面的内容。录下的操作对应的代码。模块:程序保存的地方。双击激活它的【代码窗口】可以看到保存在里面的所有程序。图‑ 查看录制的宏�依次执行【工具】→【宏】→【宏】菜单命令(或按<AltF>组合键)打开【宏】对话框。�在【宏名】列表框中选择宏名单击【编辑】按钮。练习小课堂参照图‑所示的操作可以查看宏对应的代码。别怕ExcelVBA其实很简单开始VBA编程的第一步第章 应该怎样编写程序图‑ 录制宏得到的程序开始语句。结束语句。注释语句:执行宏时并不会执行它可以删去。宏代码:按先后顺序记录下用户的操作执行宏时将按先后顺序逐行执行。无论你使用宏录制器录下的是什么操作得到的代码都是以“Sub宏名”及一对空括号开头以“EndSub”结尾中间绿色文字是对宏的说明其余代码是要完成的操作。应该怎样编写一个VBA程序?图‑所示为录制宏得到的程序。别怕ExcelVBA其实很简单开始VBA编程的第一步第章既然宏是一个VBA程序。那用VBA编写一个程序是不是写成宏的样子就可以了呢?是的。如果想要编写一个程序就将希望完成的操作写成代码放在开始语句与结束语句之间然后保存起来。 程序里都有什么为了在编程时能更加得心应手有必要先花点时间了解一下在编程的过程中会反复提到的一些概念。 代码VBA的程序由代码组成可以通过录制宏或自主编写得到VBA代码。别怕ExcelVBA其实很简单开始VBA编程的第一步第章 过程 模块模块是保存过程的地方一个模块可以保存多个不同类型的过程。用VBA代码把完成一个任务的所有操作保存起来就是一个VBA过程。一个过程可以有任意多的操作可以有任意长的代码。在本书中只介绍Sub过程和Function过程。 对象 对象的属性用代码操作和控制的东西即为对象如工作簿、工作表、单元格、图片、图表、透视表等。每个对象都有属性属性是对象包含的内容或特点。从对象的属性可以了解该对角具有的性质和特点。如字体的颜色颜色就是字体的属性按钮的宽度宽度就是按钮的属性。从对象的属性还可以了解到这个对象包含了哪些其他的对象。如Sheet工作表的A单元格A单元格就是Sheet工作表的属性A单元格的内容内容就是A单元格的属性。在书写时对象和属性之间用点()连接对象在前属性在后如A单元格的内容用汉字表达为:A内容写成代码为:Range("A")Value对象:A单元格。Value:单元格对象的属性代表指定单元格的值。对象和属性之间用点连接。对象的某些属性也是对象属性和对象是相对而言的。别怕ExcelVBA其实很简单开始VBA编程的第一步第章 对象的方法每个对象都有方法方法是指在对象上执行的某个动作。如选中A单元格“选中”是在A单元格这个对象上执行的操作就是A单元格的方法。对象和方法之间也用点()连接对象在前方法在后如选中A单元格写成代码为: 打开VBE编辑器 VBA的编程环境VBE在第章小节中打开的窗口就是编写VBA程序的地方VBE(VisualBasiceEditor)了解VBA程序中经常提到的概念后我们再花一点时间来熟悉它。要进入VBE首先必须启动Excel程序启动Excel后要切换到VBE窗口常用的方法有以下几种。方法一:按<AltF>组合键。方法二:依次执行【工具】→【宏】→【VisualBasic编辑器】菜单命令如图‑所示。图‑ 利用菜单命令打开VBERange(“A”)SelectSelect:单元格对象的方法表示在AI单元格上执行的是选择操作。 关键字关键字是VBA中的保留字或符号如语句名称、函数名称、运算符等都是关键字。别怕ExcelVBA其实很简单开始VBA编程的第一步第章方法三:右键单击工作表标签执行【查看代码】菜单命令如图‑所示。方法四:单击【VisualBasic】工具栏中的【VisualBasic编辑器】按钮如图‑所示。图‑ 利用右键菜单打开VBE图‑ �利用Visual�Basic工具栏打开VBE别怕ExcelVBA其实很简单开始VBA编程的第一步第章方法五:单击【控件工具箱】中的“查看代码”按钮如图‑所示。方法六:利用【控件工具箱】新建一个ActiveX控件双击控件打开VBE窗口如图‑所示。.图‑ 利用控件打开VBE选择【命令按钮】控件。双击按钮。在工作表中添加一个按钮。图‑ 利用控件工具箱打开VBE别怕ExcelVBA其实很简单开始VBA编程的第一步第章 主窗口进入VBE后首先看到的就是VBE的主窗口主窗口通常由【工程资源管理器】、【属性窗口】、【代码窗口】、【立即窗口】、【菜单栏】和【工具栏】组成如图‑所示。 菜单栏 工具栏VBE的【菜单栏】和Excel的菜单栏类似包含了VBE中各种组件的命令。默认情况下【工具栏】位于【菜单栏】的下面可以在【视图】→【工具栏】菜单里显示或隐藏它如图‑所示。图‑ VBE的主窗口菜单栏工程资源管理器属性窗口代码窗口立即窗口工具栏别怕ExcelVBA其实很简单开始VBA编程的第一步第章 工程资源管理器在【工程资源管理器】中可以看到所有打开的Excel工作簿和已加载的加载宏一个Excel的工作簿就是一个工程工程名称为“VBAProject(工作簿名称)”。【工程资源管理器】中最多可以显示工程里的类对象即Excel对象(包括Sheet对象和ThisWorkbook对象)、窗体对象、模块对象和类模块对象如图‑所示。但并不是所有工程里都包含这类对象新建的Excel文件只有Excel类对象。图‑ 显示或隐藏工具栏如果想显示(或隐藏)【编辑】工具栏就单击它。图‑ 工程资源管理器VBAProject(Bookxls):工程名称。如果是已经存在的文件工作簿名称会带上扩展名。Excel类对象:包括Sheet对象和Workbook对象。窗体类对象:用户自定义的对话框或界面。模块类对象:用来保存用户编写或录制的VBA代码。类模块类对象:可以通过创建类模块创建属于自己的类或对象。别怕ExcelVBA其实很简单开始VBA编程的第一步第章 属性窗口 代码窗口可以在【属性窗口】中查看或设置对象的属性。【代码窗口】由对象列表框、过程列表框、边界标识条、代码编辑区、过程分隔线和视图按钮几部分组成如图‑所示。图‑ 代码窗口栏对象列表框代码编辑区过程列表框过程分隔线边界标识条视图按钮【代码窗口】是编辑和显示VBA代码的地方【工程资源管理器】中的每个对象都拥有自己的【代码窗口】如果想将VBA程序写在某个对象里首先应在【工程资源管理器】中双击以激活它的【代码窗口】。反过来如果想查看某个对象里保存有哪些程序也必须先在【工程资源管理器】中双击以激活它的【代码窗口】。 立即窗口在【立即窗口】中直接输入命令回车后将显示命令执行后的结果如图‑所示。别怕ExcelVBA其实很简单开始VBA编程的第一步第章【立即窗口】一个很重要的用途是调试代码相应的内容请参阅第章小节。如果打开VBE窗口后【立即窗口】(或其他窗口)没有显示可以在【视图】菜单中设置显示它如图‑所示。图‑ 利用视图菜单显示窗口如果你想显示【立即窗口】请单击该菜单项或按<CtrlG>组合键。 试写一个简单的VBA程序运行Excel程序新建一个工作簿进入VBE让我们动手编写一个

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/13

《别怕,Excel VBA其实很简单》_ExcelHome

仅供在线阅读

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利