关闭

关闭

关闭

封号提示

内容

首页 excel,VBA基础入门.doc

excel,VBA基础入门.doc

excel,VBA基础入门.doc

上传者: 张靖 2012-07-25 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《excel,VBA基础入门doc》,可适用于人文社科领域,主题内容包含谈VBA最最基础入门《原创》如果你是学习Excel的朋友对VBA这个概念不陌生吧?  VBA的功能实在太强大可初学的我们面对那一串串尤如外星文的代码符等。

谈VBA最最基础入门《原创》如果你是学习Excel的朋友对VBA这个概念不陌生吧?  VBA的功能实在太强大可初学的我们面对那一串串尤如外星文的代码你是不是看得头昏脑胀?想学是不是却茫然得找不到入口?  在这里我把我自己的学习心得和笔记放出来和大家一起分享交流一起学习共同进步。对了还要告诉大家我也是初学者不是高手如果有什么说得不对的希望大家及时指出。我的目的不是教学而是期望创造一个有你有我有他的学习氛围!开始吧记住一个共同的目标掀开那层神秘的面纱看看VBA的真实面目。贴子内容  、什么是VBA为什么要学习VBA  、VBA与宏  、VBE简介  、对象、属性、方法、事件  、VBA过程  、数据类型、变量、数组、常量  、(回复)该定义变量为何种数据类型  、VBA的函数  、程序流程控制:if语句  、程序流程控制:SelectCase语句  程序流程控制:Fornext语句  、几个fornext循环的例子(作者:老朽  、程序流程控制:ForEach语句  、程序流程控制:DoWhile语句  、程序流程控制:DoUntil语句  、程序流程控制:Goto语句  、用户窗体  、再说Excel的对象模型  、小试牛刀制作一个个性化的欢迎界面 、处理单元格数据(复制、剪切、删除  、Range对象的End属性(带作业)  、花名册分类(实例)  、花名册汇总(实例)  、新建工作表  、认识数组(一)  、Worksheet的Change事件(带作业)  、关于ApplicationEnableEvents属性(有实例动画)            ApplicationEnableEvents补充说明  、关于Worksheet的SelectionChange事件(有实例动画)  、Worksheet的SelectionChange事件实例(trustwxq朋友提供)什么是VBA?为什么要学习VBA    =========      VBA是VisualBasicForApplication的简称具体说来可能让叶枫三天三夜也说不完叶枫也只知道VBA是建立在Office中的一种应用程序开发工具其实知道这也就够了。很懒很笨的叶枫只想吃香喷喷的大米饭可从没想要知道大米饭是怎么来的。      Excel本身的内置函数其实已经很强大了甚至有人说只要学会二三十个函数就已经可以满足普通用户日常的工作需求。    那我们为什么要学VBA?    是的如果只需要满足一些普通的工作需求可能永远也不会用到VBA但在实际应用的过程中人们的操作却越来越大需要也越来越高这时候就需要用VBA来对Excel进行二次开发了VBA可以有效地自定义和扩展Excel的功能。但有一点叶枫想要告诉大家VBA功能很强大但并不是万能的也并不是所有工作都需要用VBA来解决也并不是所有工作用VBA来解决都会很简单这要根据实际情况而定有些工作你用VBA来解决的话相反会变得很麻烦。VBA与宏======  刚开始的内容听起来很枯燥请大家不要分心耐着性子看下去兴趣总是慢慢积累的。    、亲自动手录制一段属于自己的宏  提到VBA相信很多人想到的就是宏但是VBA与宏是不是一回事?我觉得它们不是一回事但这不重要我们要做的是先来认识一下宏。  宏是什么?  我理解的宏是一系列固定动作的集合这个集合当遇到让他执行的条件后就逐个执行。  有人把我们录制的宏比喻成一个武术运动员在比赛中练就的一段武术套路动作这个套路遇到一定的条件(比赛)就执行。  好了别闲着动一动你可爱的右手点点鼠标打开一个Excel文件录制一段宏来来研究研究步骤如下:  ()选中任意一个单元格  ()打开菜单>工具>宏>录制新宏调出宏录制对话框输入宏名(mysub)确定  ()设置单元格字体为仿宋体红色  ()点击停止录宏。这样一个简单的设置单元格格式的宏就录好了。    、鼠标点一点宏给单元格换新装  下面我们来执行这段宏。  ()选中需要设置的任意单元格或单元格区域(为了看出效果单元格最好有字符)  ()打开菜单>工具>宏>宏显示“宏”对话框(快捷键:AltF)  ()选择我们刚才录制的宏单击“执行”。  这样我们看到已经为刚才选中的单元格的字体已被修改成仿宋体红色。自己动手试着录制几段宏再执行一下加深印象。  神奇了吧?以后当你再需要一遍又一遍地重复若干相同的操作的时候会不会想到让宏来替你做这一切?这是一个不错的奴隶不用花钱且不用开工资赚了吧?  好了收起你贪婪的笑容继续往下看。  宏是什么?现在相信你能想出一千种说法由你了又笨又懒的叶枫可没你聪明也不再多说。  上面说的执行宏的过程是不是让你感觉很麻烦?希望用快捷键来控制宏?这个我们可以在录制宏之前在录制宏对话框里进行设置。也可以在录制宏后进行设置按AltF显示宏对话框单击“选项”在“宏选项”对话框里进行设置    、寻根问底找到宏的老窝  如果你忘记了请你再打开宏录制对话框在宏名的下面有一个“保存在”的选项点一点下拉的箭头我们可以看到宏可以保存在三种不同的位置分别是:  ()当前工作簿(系统默认):宏保存在当前工作薄的模块里只有当该工作薄打开时宏才起作用。  ()新工作簿:新建一个工作薄保存。  ()个人宏工作簿:这是为宏而设计的一种特殊的具有自动隐藏特性的工作簿如果你要让某个宏在多个工作簿都能使用那么就应当创建个人宏工作簿并将宏保存于其中。  上面我们录制的宏是保存在当前工作薄里今天我们在这里也只介绍保存在当前工作表里的宏。    、拨开层层迷雾查看庐山真面目  宏靠什么来控制Excel的运行?是不是感觉深在浓浓的迷雾里感觉一头雾水?让我们鼓一鼓劲拨开它的衣服开开那家伙里面到底是什么?  ()按AltF快捷键打开“宏”对话框  ()选择我们刚才录制的宏点“编辑”按钮。  眼前一亮吧?这是一个新的天地VBA的编辑器窗口(VBE)这个我们以后再说先将注意力集中到显示的代码上。代码如下:复制内容到剪贴板代码:Submysub()'mysubMacro   '宏由ggsmart录制时间:'  WithSelectionFont    Name="仿宋GB"    Size=    Strikethrough=False    Superscript=False    Subscript=False    OutlineFont=False    Shadow=False    Underline=xlUnderlineStyleNone    ColorIndex=xlAutomatic  EndWithSelectionFontColorIndex=EndSub  现在你可能感觉到上面这些乱七八糟的代码会很陌生甚至在问自己是不是来到外星人的世界反正叶枫当初是这样感觉的但不要为此感到害怕将来我们会慢慢熟悉他就像闭上眼睛也能准确地将那个又大又红的苹果送到自己的嘴里。    、再进一步给宏安上门铃  一遍一遍地在宏对话框里选择宏名称按“执行”按钮来运行宏的麻烦是不是让你郁闷得有些想吐血?指定快捷键虽然方便但别人用自己的工作表时能不能快速上手?就算是自己如果宏多了或是放的时间长了你还记得哪个快捷键控制哪个宏?  作为excel开发者一个主要的目标是为自动化提供一个易于操作的界面“按钮”是最常见的界面组成元素之一我们可以把宏指定给特定的按钮通过按钮来执行宏还是用刚才我们录制的那个宏来举例。通过使用“窗体”工具栏可以为工作簿中的工作表添加按钮。在创建完一个按钮后可以为它指定宏然后你的用户就可以通过单击按钮来执行宏。在本练习中将创建一个按钮并为它指定一个宏然后用该按钮来执行宏。具体步骤如下:  ()打开菜单>视图>工具栏>窗体调出窗体工具栏。    HYPERLINK"http:clubexcelhomenetattachmentphpaid=k=eecdaeaeeft=nothumb=yes"t"blank"jpg(KB)  ()单击”窗体“工具栏中的“按钮”控件在工作表中希望放置按钮的位置按下鼠标左键拖动鼠标画出一个按钮松开鼠标后Excel会自动显示“指定宏”对话框。      INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=bcaaeaadebabbt=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=bcaaeaadebabbt=nothumb=yes"t"blank"jpg(KB)  ()从“指定宏”对话框中选择“mysub”单击“确定”。这样就把该宏指定给命令按钮。引用:课间休息插播一段广告:按钮,工作表等这些对象就像是Excel的众多儿女,儿女太多,怎么称呼这群儿女也是一个问题.为了不出现叫"儿子"就七八个一起跑出来同许多农村父母给儿女起"老大老二老三……"的称呼一样Excel也用这种顺序的起名方法给这些儿女贴上了标签.比如第一个按钮是"按钮一"再画一个就是"按钮二"然后是"按钮三""铵钮四"等等.这样以后你要叫第三个儿子的时候直接叫"按钮三"即可.如果你嫌这个名字乡下味太浓如果你嫌这个名字不能很好地反映点击它后会执行怎样的操作不清楚你可以通过双击按钮表面激活它可重新为按钮贴上合适的显示标签.需要提醒你的是这里的标签只是它显示在你面前的样子实际上它是什么名字?我们可以点击它看一下名称框里是什么.  INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=bcbbcfcaat=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=bcbbcfcaat=nothumb=yes"t"blank"jpg(KB)   为什么显示出来的是一样而实际的名字却是另一样呢?也许你现在会感到迷茫但不用管它以后当我们学习了属性后一切就自然明白了.  下面我们来试一试用按钮操作:   ()选择单元格或单元格区域   ()单击按钮。    HYPERLINK"http:clubexcelhomenetattachmentphpaid=k=ddecffbt=nothumb=yes"t"blank"jpg(KB)按钮就像装在楼下的门铃美丽的嫦娥仙子家住在猪八戒来到楼下找准号码轻轻一按“叮咚叮咚……”嫦娥在楼上就给八戒开门了八戒不用在楼下大声地喊“嫦娥开门。”也不用花两毛钱给嫦娥打个电话当然更不用顺着下水管从墙上爬进嫦娥的窗户方便而实在吧?  这种遥控式的命令的确能让繁琐的操作变得简单而方便让我们获得了一些使用Excel标准命令所不能实现的功能。如果你是八戒当你熟悉了如何使用这种遥控一样的门铃以后你可能都会奇怪自己当初在没有门铃的情况下那段漫长的爬下水管道的日子是怎么熬过来的。  让嫦娥仙子开门的方法有很多种同样执行宏也有多种方法可以选择我们还可以把宏指定给图片自选图形这些比较简单和指定给窗体按钮是一样的同时我们还可以把宏指定给某个“事件”比如单击工作表双击工作表激活工作表打开工作簿等等你要安什么要的门铃选什么样的音乐随你了。  需要强调一点的是我们刚说的“事件”是一个重要的概念八戒按门铃就是一个“事件”这个“事件”引发了嫦娥的开门只有门铃响了嫦娥才会去开门。除此而外“方法”“对象”“属性”都是接下来我们会经常接触到的慢慢走留心点一路上将会精彩不断。    、小结  到这里我们对宏应该有一个简单的了解了吧?宏实际上就是一个简单的VBA的Sub过程它保存在模块里以Sub开头以EndSub结尾执行时就从第一句逐句执行直到EndSub结束。就像前面我们说的武术运动员练的那段套路动作总是抱拳扎马出拳然后踢腿永远不可能没有扎马就出拳没有出拳就踢腿。我们今天录的这段宏也总是先设字体再改字体颜色这种顺序永远不会乱。  说完这些你是不是感觉这些操作古板得没有生气?是不是感觉这宏的操作不能满足自己的需求?  叶枫想告诉你的是宏代码绝不等于VBA它只是VBA里最简单的运用尽管许多Excel过程都可以用录制宏来完成但是通过宏代码还是无法完成许多的工作如:  ()不可以建立公式函数  ()没有判断或循环的功能  ()不能进行人机交互  ()无法显示用户窗体  ()无法与其他软件或文件进行互动。    ……所以你看了上面的内容后千万不要以为宏就是VBA了更不要以为自己已经会VBA了事实上是你才刚沾上VBA的边或者说连边都没沾上甚至连宏今天我们都只是作了简单的介绍。路漫漫其修远兮还等着我们上下去求索路在脚下武林高手总是从练习简单的套路动作开始不要厌倦扎马的单调静下心多练练这会是你以后练习武功招式的一个基础孔子老人家说了要温故而知新记得复习巩固不要学了后面忘了前面到下次叶枫再见到你的时候你什么都忘记了好了今天就到这里让我们一起加油~~~~VBE简介===============================  什么是VBE?  相信你还没忘记吧?VBE就是VBA的编辑窗口所有的VBA操作都在VBE里完成。  VBE是一个分离出来的应用程序它可以与Excel无缝结合但是需要说明的是要运行VBE必须先运行ExcelVBA模块与Excel工作薄文件一起存储除非激活VBE否则VBA模块是看不见的。  、运行Excel后怎样切换换到VBE窗口?  打开大门的钥匙有很多把千万别猴急地去爬下水管道。   ()按ALTF快捷键   ()选择“工具”>“宏”>“VisualBasic编辑器”命令。    HYPERLINK"http:clubexcelhomenetattachmentphpaid=k=aebcaeeebcdaft=nothumb=yes"t"blank"jpg(KB)  ()右击工作表名称标签点击查看代码。INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=abcfaaaccafeet=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=abcfaaaccafeet=nothumb=yes"t"blank"jpg(KB)   ()单击控件工具箱里的“查看代码”。    INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=cdaefcfafccfcfat=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=cdaefcfafccfcfat=nothumb=yes"t"blank"jpg(KB)  如果你的窗口里找不到控件工具箱请通过“视图”>“工具栏”>“控件工具箱”打开它。    INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=abebfccdaafbt=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=abebfccdaafbt=nothumb=yes"t"blank"jpg(KB)  ()通过控件工具箱建立一个新的控件双击控件。       HYPERLINK"http:clubexcelhomenetattachmentphpaid=k=cbcbacbdbcffcfdfddft=nothumb=yes"t"blank"jpg(KB) 、初识VBE窗口    这个界面相信你不陌生吧?查看宏的时候我们已经见识过它了。    HYPERLINK"http:clubexcelhomenetattachmentphpaid=k=bfbdccbdffaat=nothumb=yes"t"blank"jpg(KB)    “工程资源管理器”显示一个树型图示包含了当前在Excel中打开的所有Excel对象包含工作表模块窗体加载宏及隐藏的工作薄每个工作薄被认为是一个工程。     在工程资源管理器里右击可以在右键菜单里选择相应的命令插入模块或窗体。如果你想删除它或者保存它同样也可以在这里进行相应的操作。  INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=bfabcfebcbcdt=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=bfabcfebcbcdt=nothumb=yes"t"blank"jpg(KB)  “属性窗口”显示当前你选择的Excel对象的属性。选中某个对象后可以在属性窗口中修改选中的对象的的各样属性.如颜色名称等。INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=babdbdfdbcdfdt=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=babdbdfdbcdfdt=nothumb=yes"t"blank"jpg(KB)  “立即窗口”这是一个非常有用的窗口在其中可以直接执行VBA语句测试语句和调试代码就跟我们在DOS下输入DOS命令一样。如果你的立即窗口不可见按 CRTLG调出来可以在里面尝试输入:  a=”我在学习VBA”  回车看一看A单元格里发生了什么变化?INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=cffeeat=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=cffeeat=nothumb=yes"t"blank"jpg(KB)    “代码窗口”是干嘛用的?相信你已经很清楚了当然是用来编辑VBA代码的地方工程中的每一项都有一个与之相关联的代码窗口     如果要查看某对象的代码窗口或者说如果要查看某对象上面究竟编写了什么VBA代码在“工程资源管理器”窗口中双击对象即可。HYPERLINK"http:clubexcelhomenetattachmentphpaid=k=cbdcafeccefat=nothumb=yes"t"blank"jpg(KB)当然你打开后的窗口不一定和上面一样VBE的窗口也不只上面几个我们可以打开“视图”菜单在里面进行选择需要显示的窗口。INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=ebdecefaddet=noupdate=yes"*MERGEFORMATINET对象、属性、方法事件==============    这是很重要的几个概念是写VBA程序的基础大家仔细读一定要弄清楚。      、对象及对象层次结构      对象就是存在的东西是VBA处理的内容包括工作薄、工作表、工作表上的单元格区域、图表等等。对象可以相互包含就像一个文件夹里可以包含多个文件夹一样而这个文件夹又可以被其他的文件夹包含一个工作薄对象可以包含多个多个工作表对象一个工作表对象又可以包含多个单元格(或图表,图形等)这种对象的排列模式称为Excel的对象模型。    集合这个概念经常遇到我理解的集合是对相同类型的对象的统称。  某中学有个学生名字各不相同我们对他都统称为某中学的学生而不和一一去叫他们的名字"某中学的学生"在这里是集合。  对象的引用在Excel里Workbooks集合包含在Application对象里当我们要引用某工作薄的时候要遵循从大到小的规则。跟表示硬盘里的某个文件的位置一样比如我们想引用D盘“我的文档”文件夹下的名为“我的VBA课程doc”文件时要输入的是:        D:我的文档我的VBA课程doc  同样如果我们要引用名称为“mybookxls”的工作薄时就是:        ApplicationWorkbooks(“mybookxls”)  和引用文件不同的是VBA里使用的分隔符是点。  同理当我们引用“mybookxls”里面的工作表“mysheet”时应是:        ApplicationWorkbooks(“mybookxls”)Worksheets(“mysheet”)  可以继续延伸到下一层引用“mybookxls”里工作表“mysheet”里面的单元格区域“A:D”:        ApplicationWorkbooks(“mybookxls”)Worksheets(“mysheet”)Range(“A:D”)  但是并不是每一次引用都必须这么呆板就像猪八戒不用每一次都去爬下水管道。如果我们引用的是活动对象也就是被激活的对象引用就可以进行简化。  如果是mybook工作薄是激活的引用可以简化为    Worksheets(“mysheet”)Range(“A:D”)  如果mysheet当前也是激活的引用甚至还可以简化为Range(“A:D”)也可以直接输入A:D如果引用的单元Range是单个的单元格还可以用Cells(行号,列号)的引用方式。  、属性    每一个对象都有属性一个属性就是对一个对象的一个设置。    猪八戒背着媳妇高秀兰回自己的紫云洞猪八戒的媳妇就是对象“高秀兰”就是猪八戒的媳妇的一个属性(name属性)引用对象的属性同样也要用点来分隔。    猪八戒的媳妇name=高秀兰    别闲着还是动动你的右手打开一个工作表AltF(千万别说你不知道这个快捷键是干什么要不我保证被你气个半死)如果立即窗口没有打开按CtrlG打开在里面输入:复制内容到剪贴板代码:      MsgboxWorksheets()name回车。INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=bdefcabcfdbfdet=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=bdefcabcfdbfdet=nothumb=yes"t"blank"jpg(KB)    Worksheets()和Worksheets(“sheet”)有什么区别?    Worksheets()表示Worksheets集合里的第一个工作表。    Worksheets(“sheet”)表示Worksheets集合里名为"sheet"的工作表。    至于Msgbox是什么那就自己问Help了在立即窗口里用鼠标左键把Msgbox抹黑按F就弹出Help里对它的说明了。  抹黑代码再按F即可看到相应的帮助。叶枫说:“这个办法很适用一般人我不告诉他。”INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=efcefbcdadfbacaeedet=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=efcefbcdadfbacaeedet=nothumb=yes"t"blank"jpg(KB)    一个对象有哪些属性我们可以在属性窗口里查看要修改一个对象的某种属性如名称、显示状态、颜色等等也可以在属性窗口里进行修改当然我们还可以利用代码进行修改。改当前工作薄里的第三个工作表的名称为“这个名字是我用VBA改的”想想怎么写代码?    把你的代码输在立即窗口里回车看看效果你做到了吗?  、方法  每一个对象都有方法方法就是在对象上执行的某个动作。    和属性相比属性表示的是对象某种状态或样子是静态的就像是语文里的名词、形容词和副词而方法则是做某件事的一个动作就像动词对象和方法同样用点来分隔。  例如Range对象有有一个方法是Select他的作用是选中指定的Range(单元格区域)对象在立即窗口里输入代码:  回车可以看到D:F已经被选中了。INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=dbaaebdbt=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=dbaaebdbt=nothumb=yes"t"blank"jpg(KB)  、事件    在上一面猪八戒按门铃那里我们已经接触过什么是事件了。    简单点说事件就是由用户或者系统触发的可以在代码中响应的一段代码。比如当我们移动鼠标打开工作薄激活工作表选中单元格改变单元格的数值点击按钮或窗体敲击键盘等等这些都会产生一系列的事件通过编写代码响应这些事件当发生此类事件时程序代码就会进行相应的操作。    这样解释你会不会有些晕?感觉又一次进入了外星人的世界?还是举例说明我们需要当激活某工作表的时候自动弹出一个对话框告诉我们激活的工作表的名称。    ()打开一个工作表AltF打开VBE窗口在“工程对象管理器”窗口里双击你要进行设置的工作表使其代码窗口显示。              ()左面选择对象Worksheet(工作表对象)右面选择Activate事件我们可以看到在代码窗口里系统已经为我们自动输入了一段代码。复制内容到剪贴板代码:PrivateSubWorksheetActivate()EndSub引用:提醒:初学的我们不必完全记住对象及事件的名称也不必手工输入系统早为你准备好了你可以在代码窗口里进行选择左边是对象右面是事件如果你想知道某个对象(例如工作薄、工作表、窗体等)有哪些事件只需要双击这个对象然后在代友窗口里查看即可。我们需要做的只是:当自己需要它的时候,知道打开哪个箱子把它拿出来即可INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=aabcbaaffdcccdet=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=aabcbaaffdcccdet=nothumb=yes"t"blank"jpg(KB)      废话说完再回到问题里:  要达到问题的目的我们只需要在已给我们列出的两段代码中间加入需要进行操作的代码就可以了这里我们需要的是一个对话框来提醒对了还记得Msgbox吧?   输入代码:复制内容到剪贴板代码:MsgBox"你现在激活的工作表名称是:"ActiveSheetName上面的代码相信你应该能看懂吧?          和我们工作表里的函数是一样的连接文本的作用Activesheetname是当前活动工作表的名字(用了一个name属性)。    回到工作表激活你刚才设置代码的工作表如果你刚才设置的工作表是激活状态请选择其他工作表然后再重新激活它看看你看到了什么?INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=eedbebcfeafcdbfbet=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=eedbebcfeafcdbfbet=nothumb=yes"t"blank"jpg(KB)    看一下上面的代码对象和事件之间用什么来分隔?还是不是点?    千万别懒一定要动手换其他的事件或其他的对象试一试试着用代码改一下其他对象的属性在单元格里添加点什么东西这些随你了你可千万别说你不知道哪些事件是干嘛用的。    别忘记抹黑代码按F再重复一遍这是一件好武器一般人我不告诉他VBA过程================    一个过程就是执行某些动作的代码组合。      VBA过程分Sub过程和Function过程。      、Sub过程总是以“sub过程名()”开头以“EndSub”结尾一个过程就是执行某项动作的一套指令Sub过程不返回运行的结果。      、Function总是以“Function程序名()”开头以“EndFunction”结尾和Sub过程的区别是Function过程返回程序运行的值值可以是一个值或一个数组就像我们的工作表函数Function过程也就是我们说的自定义函数。      在这里叶枫主要要给大家讲的是Sub过程Function过程如果需要的话在后面我们再讲。      好了今天已经讲得够多了你对VBA应该已有一个简单的认识了吧?      要设计一个过程其实很简单把需要的对象收集起来看看我们要对他们的属性进行怎样的修改?我们需要做什么?需要用什么样的方法?要用哪些事件?收集起来就是一个完整的过程。      只要你肯动手一定会觉得很简单你不要被那一大堆的对象、属性、方法和事件给吓晕了完全不必全部记住它们需要的时候知道在哪里找就行而代码也不必一个一个的去输入还记得前面一贴我们说的录制宏吗?当你需要进行某项操作的时候不妨先录一段宏但是宏是呆板的有许多我们不需要的东西给它修修枝剪剪叶整理整理一个程序就OK了。      同时建议你在VBE窗口中单击“工具选项”在弹出的“选项”对话框里勾选“自动列出成员”。      INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=fadabecdeadt=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=fadabecdeadt=nothumb=yes"t"blank"jpg(KB)    设置好后,试着在代码窗口里输入点代码,看看,有什么呵呵,不用我说了,对于初学的我们,很需要它吧    INCLUDEPICTURE"http:clubexcelhomenetattachmentphpaid=k=fcbabfdffaccbeet=noupdate=yes"*MERGEFORMATINETHYPERLINK"http:clubexcelhomenetattachmentphpaid=k=fcbabfdffaccbeet=nothumb=yes"t"blank"jpg(KB)    了解了对象属性方法及事件后猪八戒按门铃开门的过程我们都可以把它写成程序:    Sub门铃单击()        如果嫦娥位置=在家那么门开    Endsub    上面这个并不是真的程序但都有了程序的思想了程序里事件、对象、属性及过程都有了你能找出来吗?    多尝试温故知新你可以想着用程序去解决一些你在使用Excel过程中遇到的问题,每一个问题的解决,你都会发现自己得到了很大的进步      好了还是那句话路在脚下继续走精彩会慢慢为你上演让我们一起努力共同进步。在上面我们简单介绍了VBA的开发环境、几个常用的窗口并对对象、对象的属性、对象的方法、对象的事件等概念作了简单的介绍贴子大家认真看了吗?有没有一点点的收获?学习成绩如何?  什么是对象?什么是集合?什么是属性?什么是方法?什么是事件?如何正确地表示它们?  这些你都能回答了吗?  先沉思三秒钟如果你不能回答那请赶快回过头去再看一遍我们说VBA是采用面向对象的程序设计方式这些都是很重要的概念如果不弄清楚实际应用时你可能会感到手忙脚乱。  如果已经掌握了那让我们一起继续本贴的内容。  这次我们将继续单调的基本功练习讲一些VBA里面的关键字为程序设计打下基础还是那句话希望你不要嫌内容的单调一口你永远也吞不下一个大胖子学习是一个循序渐进的过程。数据类型、变量、常量、数组====================      VBA的主要目的是什么?不用说了你也知道当然是处理数据。某些数据存在于对象中如工作表的单元格区域里某些数据存在于我们自定义的变量中。        、数据类型      数据类型告诉计算机如何将数据存储在内存中如以整数、字符串、日期等。      数据类型是变量的特性数据类型包括:数据类型存储空间大小范围Byte个字节到Boolean个字节True或FalseInteger个字节,到,Long(长整型)个字节,,,到,,,Single(单精度浮点型)个字节负数时从E到E正数时从E到EDouble(双精度浮点型)个字节负数时从E到E正数时从E到ECurrency(变比整型)个字节从,,,,到,,,,Decimal个字节没有小数点时为,,,,,,,,,而小数点右边有位数时为最小的非零值为Date个字节年月日到年月日Object个字节任何Object引用String(变长)字节加字符串长度到大约亿String(定长)字符串长度到大约,Variant(数字)个字节任何数字值最大可达Double的范围Variant(字符)个字节加字符串长度与变长String有相同的范围用户自定义(利用Type)所有元素所需数目      、变量      变量是用于保存在程序运行过程中需要临时保存的值或对象。就相当于我们在操作工作表的时候插入的辅助单元格、辅助列或辅助表一样。      同工作表的单元格一样变量可以接纳很多种的数据类型如其名程序运行后变量的值是可以改变的。      如何定义变量?      定义变量可以使用Dim语句:                            Dim变量名As数据类型      变量名有一定的命名规则这里我就不详细说明了需要提醒的是在程序的设计过程中你可能会定义很多的变量为了阅读及修改程序的方便你定义的变量名尽量能让人一看就明白这个变量具体代表的是什么。在Dim语句中我们可以不必声明变量的数据类型直接输入“Dim变量名”此时定义的变量将被指定为Variant类型。      但我们在程序设计的过程中一般应该明确数据的类型这是一个好的编程习惯因为指定数据类型后会提高程序的运行速度。      我们可以在模块中输入“OptionExplict”作为第一句语句来强制声明所有变量。也可以点“工具选项”,在选项对话框里勾选“要求声明变量”。这样VBA在遇到没有声明的变量名称该语句将导致程序停止。      定义变量除了可以使用Dim语句外比较常的还有:static语句Private语句Public语句。使用不同的语句定义的变量不同的是它们的作用作用域不同具体为:      ()如果在一个过程中包含了一个Dim或Static语句此时声明的变量作用域为此过程即本地变量。      ()如果在一个模块的第一个过程之前包含了Dim或Prvate语句此时声明的变量作用域为此模块里所有的过程也就是在此模块里所有的过程都可以使用它即模块作用域下的变量            ()如果在一个模块的第一个过程之前包含了Public语名此时声明的变量作用域为所有模块即公有变量。      变量的作用域是指变量保留其值的这段时间也称为变量的生成周期它决定变量可以用于哪个模块或过程中。      给变量赋值        用等号(=)是VBA里的赋值运算符。      比如我们把"我在学习VBA变量!"这个字符串赋给变量A,则直接输入:                          A="我在学习VBA变量!"      对了你可以在立即窗口里试一下逐条输入:                          A="我在学习VBA变量!"           

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/52
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部