excel,VBA基础入门.docx

上传人:太** 文档编号:69245206 上传时间:2022-12-31 格式:DOCX 页数:95 大小:2MB
返回 下载 相关 举报
excel,VBA基础入门.docx_第1页
第1页 / 共95页
excel,VBA基础入门.docx_第2页
第2页 / 共95页
点击查看更多>>
资源描述

《excel,VBA基础入门.docx》由会员分享,可在线阅读,更多相关《excel,VBA基础入门.docx(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、谈VBA最最基础入门原创如果你是学习Excel的朋友,对VBA这个概念不陌生吧?VBA的功能实在太强大,可初学的我们,面对那一串串尤如外星文的代码,你是不是看得头昏脑胀想学,是不是却茫然得找不到入口? 在这里,我把我自己的学习心得和笔记放出来,和大家一起分享交流, 一起学习,共同进步。对了,还要告诉大家,我也是初学者,不是高手,如果有 什么说得不对的,希望大家及时指出。我的目的不是教学,而是期望创造一个有 你,有我,有他的学习氛围!开始吧,记住一个共同的目标掀开那层神秘 的面纱,看看VBA的真实面目。贴子内容1、什么是VBA为什么要学习VBA2、VBA与宏3、VBE简介4、对象、属性、方法、事

2、件5、VBA过程6、数据类型、变量、数组、常量7、(回复)该定义变量为何种数据类型8、VBA的函数9、程序流程控制:if语句10、程序流程控制:SeIect Case语句11.程序流程控制:Fornext语句12、几个fornext循环的例子(作者:老朽(1)选择单元格或单元格区域;(2)单击按钮。仅我在学习VBA-VVVVVVVV )、|】、)、| 学学学学学学学学 在在在在在在在在 .我我我我我我我我 -VVVVVVVV )、|】、)、| 学学学学学学学学 在在在在在在在在 .我我我我我我我我 -9101415161718XAAAAAAAABBBBBBBB修改格式文件电)编辑视图9 插入复

3、)格式地)工具建)变后610后I晋EIXdiV为力宋体 1211Al我在学习VBA 我在学习VBA 我在学习VBA 我在学习VBA 我在学习VBA 我在学习VBA 我在学习VBA 我在学习UBA修改格式点击它B KB)按钮就像装在楼下的门铃,美丽的嫦娥仙子家住在502,猪八戒来到楼下, 找准号码502,轻轻一按,“叮咚,叮咚”,嫦娥在楼上就给八戒开门了,八 戒不用在楼下大声地喊“嫦娥,开门。”也不用花两毛钱给嫦娥打个电话,当然 更不用顺着下水管从墙上爬进嫦娥的窗户,方便而实在吧? 这种遥控式的命令的确能让繁琐的操作变得简单而方便,让我们获得了一 些使用Excel标准命令所不能实现的功能。如果你

4、是八戒,当你熟悉了如何使用 这种遥控一样的门铃以后,你可能都会奇怪自己当初在没有门铃的情况下,那段 漫长的爬下水管道的日子是怎么熬过来的。让嫦娥仙子开门的方法有很多种,同样执行宏也有多种方法可以选择,我们 还可以把宏指定给图片,自选图形,这些比较简单,和指定给窗体按钮是一样的, 同时我们还可以把宏指定给某个“事件”,比如单击工作表,双击工作表,激活 工作表,打开工作簿等等,你要安什么要的门铃,选什么样的音乐,随你了。MsgBox 第一”维的上界是:& UBound (ar r, 1) & Chr (13) & _第二维的上界是:& UBound (ar r, 2)End Sub六、Join函数

5、Join的作用和Spl it的作用相反。Sp I it是将字符按指定字符转为数组,Join 是将数组以指定字符分开,连成一个字符串。如:代码:Sub ggsmart 0D im arr (1 To 10), i As I nteger, txt As Str i ngFor i = 1 To 10 给数组赋值arr (i)= iNext itxt = Joi n (arr, , ) 4号arr数组的元素连成字符串,用逗号作分隔 符MsgBox txtEnd SubJoin的第二参数,即分隔符可以不指定,在不指定时,默认为以空格作分 隔符。七、将数组输入单元格区域1、使用循环输入如将存储了 1到

6、60000的数的数组写入A列,贝h代码:Sub testl ()创建数组,并赋值Dim arr (1 To 60000), i As LongFor i = 1 To 60000arr (i)= iNext i将数组的值写入单元格(A列)a1:a65536. Clear 清除原有数据Dim i row As LongDim startime As DoubIestartime = TimerFor i row = 1 To 60000Cel I s (i row, 1) = arr (i row)Next i rowMsgBox 数组写入共用了 & Timer - startime & 秒!E

7、nd Sub以上程序是使用循环,将数组里的元素逐个写入单元格,为了对比不同的输 入方式的效率,我加入了计算时间的代码,有了前面的基础,相信读上面的代码 对大家来说,不会太困难。2、批量写入实际上用一条语句就可以将数的内容写入单元格区域中,即:单元格区域二 数组名还是上面的例子,我们可改为:代码:Sub test2 ()创建数组,并赋值D im ar r (1 To 60000), i As LongFor i = 1 To 60000arr (i)= iNext i将数组的值写入单元格(A列)a1:a65536. Clear 清除原有数据Dim start ime As DoubIestart

8、ime 二 Timera1:a60000=MsgBox 数组写入共用了 & Timer - startime & 秒!”End Sub这里,我们用“a1:a60000二代替了上面代码For循环,在我的电脑上, 程序的效率就提高了 25倍以上。逐数组写入单元格.rar KB)金数组写入单元格.rar KB)所以在大批量的数据需要写入时,我建议尽量不要用循环的方式写入。这种批量写入的方式在上面的例子里其实我已经用到了,相信大家不会陌 生。这里,我再补充两点我个人在学习过程中的心得:(1) 一维数组写入单元格区域时,这个单元格必须是水平方向的,也就是一个一行多列的单元格区域,如果想写入垂直区域,必须

9、使用工作表的 Transpose函数转换一下;(2)和工作表的多单元格数组公式一样,数组写入单元格时,单元格的区 域必须和数组的大小一致。金(回复)宝贝有酒窝的学生花名册汇总.rar KB)Mfor_nextT 到 1000 自然数的和.rar KB)多IF语句.rar KB)KB)需要强调一点的是,我们刚说的“事件”是一个重要的概念,八戒按门铃, 就是一个“事件”,这个“事件”引发了嫦娥的开门,只有门铃响了,嫦娥才会 去开门。除此而外“方法”“对象”“属性”都是接下来我们会经常接触到的,慢 慢走,留心点,一路上将会精彩不断。6、小结到这里,我们对宏应该有一个简单的了解了吧宏实际上就是一个简单

10、的VBA 的Sub过程,它保存在模块里,以Sub开头,以End Sub结尾,执行时就从第一 句逐句执行,直到End Sub结束。就像前面我们说的武术运动员练的那段套路动 作,总是抱拳,扎马,出拳然后踢腿,永远不可能没有扎马就出拳,没有出拳就 踢腿。我们今天录的这段宏也总是先设字体,再改字体颜色,这种顺序永远不会 乱。说完这些,你是不是感觉这些操作古板得没有生气是不是感觉这宏的操作不 能满足自己的需求? 叶枫想告诉你的是,宏代码绝不等于VBA,它只是VBA里最简单的运用, 尽管许多Excel过程都可以用录制宏来完成,但是通过宏代码还是无法完成许多 的工作,如:(1)不可以建立公式,函数;(2)没

11、有判断或循环的功能;(3)不能进行人机交互;(4)无法显示用户窗体;(5)无法与其他软件或文件进行互动。.所以,你看了上面的内容后千万不要以为宏就是VBA 了,更不要以为自己已经会VBA 了,事实上是你才刚沾上VBA的边,或者说连边都没沾上, 甚至连宏今天我们都只是作了简单的介绍。路漫漫其修远兮,还等着我们上下去求索,路在脚下,武林高手总是从练 习简单的套路动作开始,不要厌倦扎马的单调,静下心多练练,这会是你以后练 习武功招式的一个基础,孔子老人家说了,要温故而知新,记得复习巩固,不要 学了后面忘了前面,到下次叶枫再见到你的时候你什么都忘记了,好了,今天就 到这里,让我们一起加油 VBE 简介

12、二二二二二=什么是VBE?相信你还没忘记吧VBE就是VBA的编辑窗口,所有的VBA操作都在VBE里完成。VBE是一个分离出来的应用程序,它可以与Excel无缝结合,但是需要说明 的是要运行VBE必须先运行Excel, VBA模块与Exce I工作薄文件一起存储,除 非激活VBE,否则VBA模块是看不见的。1、运行Excel后,怎样切换换到VBE窗口?打开大门的钥匙有很多把,千万别猴急地去爬下水管道。(1)按ALT+F11快捷键;(2)选择“工具” “宏” 一 “Visual Basic编辑器”命令。港(Q)工具)数据也)窗口 1帮助国) 3 巧拼写检委9二F7 M攵I |她出85% 蚣C保护9

13、,一季景_,ABA单变量求解)八.q公式审核也) r f ; y . h i j宏 ) 定AH+F83口33353637 I42电查看代码包) 卜卜I She JrrrRi鸵丁KB)(3)右击工作表名称标签,点击查看代码。插入(1).删除也)重命名CR)移动或复制工作表).选定全部工作表)工作表标签颜色(!).KB)(4)单击控件工具箱里的“查看代码”。文件g 编辑 视图9 插入)格式地)工具矍)数据也)窗口世):宋体 查看代码I 12 b / U 室冬季用雪,8,KB)如果你的窗口里找不到控件工具箱,请通过“视图”一“工具栏”一 “控件工具箱”打开它。X 授X 授才 囤 311A/3F/ :

14、 溯为KB)(5)通过控件工具箱建立一个新的控件,双击控件。:1oiranandBut.A_6_78_9_1011121314曾 lsJllA 第导pZJia一二工 a 为o C ormnandBut t onl )双击它KB)2、初识VBE窗口这个界面相信你不陌生吧查看宏的时候我们已经见识过它了。a崛safi幽a国建酮球我政盛二手豌仃硼文件9 编辑 视图9 插入 格式)调试也)运行 工具复)外接 ;帮助国)-4J 登工程-VBAProject-二$ Microsoft Excel ,Bl Sheetl (Sheet 1工程资置IS器he. .nr属性-CommandButtonl2d(名称)

15、Common dButtcAAccelerator一:iAutoLoadFalseAutoSi zeFalse|BackColor如8000000BackStyle1 - fmBackSiC ap t i onCommandButtcEnabledTrueFont宋体;ForeColor ftH8000001Hei ght26.25Left213Locked属性囱r口Mouseicon n (None)c一 CoBBandButt CommandButto v |按字母序|按分类序|Sub mysub () my sub Macro宏由 ggsmart录制,时间:20092-27 With S

16、election. Font.Name =仿宋 _GB2312,Size = 12.Strikethrough = False.Superscript = False .Subscript = False .OutlineFont = False .Shadow = False.Underline = xlUnderlineStyleNone .Colorindex = xlAutomaticEnd WithSelection. Font. Col or Index = 3End Subl-gyl I立即窗口(A)窗口 )_曰X立即窗口工具栏代码窗口| * x LJ = -=-=三r | /o

17、泰 二EMBED (F orms. C oinmandBut t on. 1)KB)“工程资源管理器”显示一个树型图示,包含了当前在Excel中打 开的所有Excel对象,包含工作表,模块,窗体,加载宏及隐藏的工作薄,每个 工作薄被认为是一个工程。在工程资源管理器里右击,可以在右键菜单里选择相应的命令插入 模块或窗体。如果你想删除它或者保存它,同样也可以在这里进行相应的操作。j Sheet3 (Sheet3),Thi sWorkbook句8模块击国查看代码).。j JLGU UXU.Superscript = .Subscript = F .OutlineFont = .Shadow = Fa

18、is .Underline = x .ColorIndex =End WithSelection. Font. Colorln ind Sub屋性相屋性相I模块1,按字母VBAProject属性也).插入 导入文件(!). 导出文件也). 移除模块1国).打印9J用户窗体 球模块也) a类模块o可连接的QC) 除藏国)KB)“属性窗口 ”显示当前你选择的Excel对象的属性。选中某个对象后,可以在属性窗口中修改选中的对象的的各样属性.如颜色,名称等。Hj Sheetl (Sheetl)-S Sheet2 (Sheet2),电 Sheet3 (Sheet3)超Thi sWorkbook曰&苫|F

19、il UserForml白巴模块y模块i4 |川|JJZZ1JJZZ1属性-UserForml;UserForal UserFo: m 按字母序I按分类草IBackColorBorderColor BorderStyle Capti on CycleDrawBuffer0 - fmBorUserForml0 - fmCycEnabledFontForeColorHei ght00Ue宋体 6 180HelpContextIIOKe epScr ollB ar 3 一 nKB)“立即窗口”,这是一个非常有用的窗口,在其中可以直接执行VBA语句, 测试语句和调试代码,就跟我们在DOS下输入DOS命

20、令一样。如果你的立即窗口 不可见,按CRTL+G调出来,可以在里面尝试输入:a1二我在学习VBA”回车,看一看A1单元格里发生了什么变化KB)“代码窗口”是干嘛用的相信你已经很清楚了,当然是用来编辑VBA代码的地方,工程中的每一项都有一个与之相关联的代码窗口,如果要查看某对象的代码窗口,或者说如果要查看某对象上面究竟编写了什么VBA代码,在“工程资源管理器”窗口中双击对象即可。G1用)工程-VBAProject四碧口-魅VBAProject面数求助.xb)crQsoft Excel 对象对象窗口 d)Shit+F7对象浏览器)F2Ctrl+G坨曲6涮癖第ECt ioft 匏)立即窗口 a) 本

21、地窗口) 监视窗口也)Microsoft Excel Alt+Fll当然,你打开后的窗口不一定和上面一样,VBE的窗口也不只上面几个,我们可 以打开“视图”菜单,在里面进行选择需要显示的窗口。编辑熠)M2”t3isWorkboo *rFortril工程资源省理器)CtrHR 屋性窗口世)工具栏建)对象、属性、方法,事件这是很重要的几个概念,是写VBA程序的基础,大家仔细读,一定要 弄清楚。1、对象及对象层次结构对象就是存在的东西,是VBA处理的内容,包括工作薄、工作表、工作表上的单元格区域、图表等等。对象可以相互包含,就像一个文件夹里可以 包含多个文件夹一羊,而这个文件夹又可以被其他的文件夹包

22、含,一个工作薄对13、程序流程控制:ForEach语句14、程序流程控制:D。While语句15、程序流程控制:Do Unti I语句16、程序流程控制:Go to语句17、用户窗体18、再说Excel的对象模型19、小试牛刀制作一个个性化的欢迎界面20、处理单元格数据(复制、剪切、删除21、 Range对象的End属性(带作业)22、花名册分类(实例)23、花名册汇总(实例)24、新建工作表25、认识数组(一)26、Worksheet 的 Change 事件(带作业)27、关于属性(有实例动画)补充说明28、关于Worksheet的SeIect ionChange事件(有实例动画)29、Wo

23、rksheet 的 SeIect ionChange 事件实例(trustwxq 朋友提供)什么是VBA为什么要学习VBA 象可以包含多个多个工作表对象,一个工作表对象又可以包含多个单元格(或图 表,图形等),这种对象的排列模式称为Excel的对象模型。集合这个概念经常遇到,我理解的集合是对相同类型的对象的统称。某中学有5000个学生,名字各不相同,我们对他都统称为某中学的学生, 而不和去叫他们的名字,”某中学的学生”在这里是集合。对象的引用,在Excel里,Workbooks集合包含在App I i cat i on对象里, 当我们要引用某工作薄的时候,要遵循从大到小的规则。跟表示硬盘里的某

24、个文 件的位置一样,比如我们想引用D盘“我的文档”文件夹下的名为“我的VBA 课程.doc”文件时要输入的是:D: 我的文档、我的VBA课程.doc同样,如果我们要引用名称为“”的工作薄时就是:(”)和引用文件不同的是,VBA里使用的分隔符是点。同理,当我们引用里面的工作表“mysheet”时应是:().Worksheets ( umysheetn )可以继续延伸到下一层,引用里工作表“mysheet”里面的单元格区域 “A1 : D10”:().Worksheets ( amysheet,? ). Range ( A1 : D10)但是并不是每一次引用都必须这么呆板,就像猪八戒不用每一次都去

25、爬下 水管道。如果我们引用的是活动对象,也就是被激活的对象,引用就可以进行简 化。如果是mybook工作薄是激活的,引用可以简化为Worksheets ( mysheet ).Range ( A1:D10 )如果mysheet当前也是激活的,引用甚至还可以简化为Range (A1 : D10), 也可以直接输入A1:D10,如果引用的单元Range是单个的单元格,还可以用 Cells (行号,列号)的引用方式。2、属性每一1个对象都有属性,一个属性就是对一个对象的一个设置。猪八戒背着媳妇高秀兰回自己的紫云洞,猪八戒的媳妇就是对象,“高 秀兰”就是猪八戒的媳妇的一个属性(name属性),引用对象

26、的属性同样也要用 点来分隔。猪八戒的媳妇.name =高秀兰别闲着,还是动动你的右手,打开一个工作表,Alt+F11 (千万别说你 不知道这个快捷键是干什么,要不我保证被你气个半死),如果立即窗口没有打 开,按Ctrl+G打开,在里面输入:复制内容到剪贴板代码:Msgbox Worksheets(1). name回车。KB)Worksheets (1)和 Worksheets ( sheetl )有什么区别?Worksheets表示Worksheets集合里的第一个工作表。Worksheets ( sheetl ” )表示 Worksheets 集合里名为sheetl的工 作表。至于Msgbo

27、x是什么,那就自己问Help 了,在立即窗口里用鼠标左键把Msgbox抹黑,按F1,就弹出Help里对它的说明了。抹黑代码,再按F1即可看到相应的帮助。叶枫说:“这个办法很适用,一般人我不告诉他J立即窗口msgbox worksheets (1). name语参阅示例在对话框中显示消息,等待用户单击按钮,并返回一个 Integer告诉用户单击哪一个按钮。语法IsgBoxBottpus , tj tie,help file, cpntet) sgBox函数的语法具有以下几个命名参数:理分描述Frpp t必需的。字符串表达式,作为显示在对话框中的消息。的最大长度大约为 1024个字符,由所用字符的

28、宽度决定。 如果prompt的内容超过一行j则可以 在每一行之间用回车符(Chr (13) )s换KB)一个对象有哪些属性我们可以在属性窗口里查看,要修改一个对象的 某种属性,如名称、显示状态、颜色等等,也可以在属性窗口里进行修改,当然 我们还可以利用代码进行修改。改当前工作薄里的第三个工作表的名称为“这个 名字是我用VBA改的“,想想怎么写代码?把你的代码输在立即窗口里,回车,看看效果,你做到了吗?3、方法每一个对象都有方法,方法就是在对象上执行的某个动作。和属性相比,属性表示的是对象某种状态或样子,是静态的,就像是语文 里的名词、形容词和副词,而方法则是做某件事的一个动作,就像动词,对象和

29、方法同样用点来分隔。例如Range对象有有一个方法是SeIect,他的作用是选中指定的Range(单元格区域)对象,在立即窗口里输入代码:回车,可以看到D1:F10已经被选中了。S KB)4、事件在上一面猪八戒按门铃那里,我们已经接触过什么是事件了。简单点说,事件就是由用户或者系统触发的,可以在代码中响应的一 段代码。比如,当我们移动鼠标,打开工作薄,激活工作表,选中单元格,改变 单元格的数值,点击按钮或窗体,敲击键盘等等这些都会产生一系列的事件,通 过编写代码响应这些事件,当发生此类事件时,程序代码就会进行相应的操作。这样解释你会不会有些晕感觉又一次进入了外星人的世界还是举例 说明,我们需要

30、当激活某工作表的时候,自动弹出一个对话框,告诉我们激活的 工作表的名称。(1)打开一个工作表,Alt+F11打开VBE窗口,在“工程对象管理器”窗口里双击你要进行设置的工作表,使其代码窗口显 不O(2)左面选择对象Worksheet (工作表对象),右面选择Act i vate事件,我们可以看到在代码窗口里系统已经为我们自动输入了 一段代码。复制内容到剪贴板代码:Private Sub Worksheet_Act i vate ()End Sub引用: 提醒:初学的我们,不必完全记住对象及事件的名称,也不必手工输入,系统早 为你准备好了,你可以在代码窗口里进行选择,左边是对象,右面是事件,如果

31、 你想知道某个对象(例如工作薄、工作表、窗体等)有哪些事件,只需要双击这 个对象,然后在代友窗口里查看即可。我们需要做的只是:当自己需要它的时候, 知道打开哪个箱子把它拿出来即可.“ 血鹿3除卬当必 中卜加 助Fil偿二皿d 文件9 编辑 视图9 插入Q)格式)调试8)运行 工具9 外接程序 窗口记)Sub tforksheet-Activate 0Sub tforksheet-Activate 0x为E3工程-VBAProjectActif . BefortDoubleClick BeforeRi ghtClick CalculateChange Deactivate FollowKyper

32、link Fivo tT ableUpdate Select】onChange事件列表帮助_日x-尊 VBAProject (Bookl)-5 Microsoft Excel 对象 O Sheetl舞八戒背媳 O Sheet2 6heet2) | Shet3 (Sheet3)Thi stforkbooka kb)废话说完,再回到问题里:要达到问题的目的,我们只需要在已给我们列出的两段代码中间加入需要进 行操作的代码就可以了,这里我们需要的是一个对话框来提醒,对了,还记得 Msgbox 吧?口输入代码:复制内容到剪贴板代码:MsgBox 你现在激活的工作表名称是:&上面的代码相信你应该能看懂吧&

33、和我们工作表里的函数是一样的,连接文本的作用,是当前活动工 作表的名字(用了一个name属性)。回到工作表,激活你刚才设置代码的工作表,如果你刚才设置的工作 表是激活状态,请选择其他工作表,然后再重新激活它,看看你看到了什么19 202122232425262728293031323334353637383940; , N卜猪八戒背媳妇/KB)看一下上面的代码,对象和事件之间用什么来分隔还是不是点? 千万别懒,一定要动手,换其他的事件或其他的对象试一试,试着用代码改一下其他对象的属性,在单元格里添加点什么东西,这些随你了,你可 千万别说你不知道哪些事件是干嘛用的。别忘记,抹黑代码,按F1,再重

34、复一遍,这是一件好武器,一般人 我不告诉他.VBA过程一个过程就是执行某些动作的代码组合。VBA过程分Sub过程和Funct ion过程。1、Sub过程总是以“sub过程名()”开头,以“End Sub”结 尾,一个过程就是执行某项动作的一套指令,Sub过程不返回运行的结果。2、Function总是以“Function程序名()”开头,以End Function”结尾,和Sub过程的区别是Function过程返回程序运行的值,值可 以是一个值或一个数组,就像我们的工作表函数,Function过程也就是我们说 的自定义函数。在这里,叶枫主要要给大家讲的是Sub过程,Function过程如 果需要

35、的话,在后面我们再讲。好了,今天已经讲得够多了,你对VBA应该已有一个简单的认 识了吧? 要设计一个过程,其实很简单,把需要的对象收集起来,看看我们要对他们的属性进行怎样的修改我们需要做什么需要用什么样的方法要用 哪些事件收集起来就是一个完整的过程。只要你肯动手,一定会觉得很简单,你不要被那一大堆的对象、 属性、方法和事件给吓晕了,完全不必全部记住它们,需要的时候知道在哪里找 就行,而代码也不必一个一个的去输入,还记得前面一贴我们说的录制宏吗当你 需要进行某项操作的时候,不妨先录一段宏,但是宏是呆板的,有许多我们不需 要的东西,给它修修枝,剪剪叶,整理整理,一个程序就0K 了。同时,建议你在V

36、BE窗口中,单击“工具选项”,在弹出的“选项”对话框里勾选“自动列出成员”。KB)设置好后,试着在代码窗口里输入点代码,看看,有什么呵呵不用我说了,对于初学的我们,很需要它吧?用)End SubEnd Sub啕 Width西1 WindowsWindowsForPens西1 WindowState阕1 WorkbooksWorksheetFuncti on gff WorksheetsSub a() application. wor|KB)了解了对象,属性,方法及事件后,猪八戒按门铃开门的过程我们都可以把它写成程序:Sub门铃单击()如果嫦娥,位置=在家那么门.开VBA 是 Vi sua I

37、Bas ic For App I icat ion 的简称,具体说来,可能让叶枫三天三夜也说不完,叶枫也只知道VBA是建立在Off ice中的一种应用 程序开发工具,其实知道这也就够了。很懒很笨的叶枫只想吃香喷喷的大米饭, 可从没想要知道大米饭是怎么来的。Excel本身的内置函数其实已经很强大了,甚至有人说,只要学 会二三十个函数,就已经可以满足普通用户日常的工作需求。那我们为什么要学VBA?是的,如果只需要满足一些普通的工作需求可能永远也不会用到VBA,但在实际应用的过程中,人们的操作却越来越大,需要也越来越高,这时 候就需要用VBA来对Exce I进行二次开发了,VBA可以有效地自定义和扩

38、展Exce I 的功能。但有一点叶枫想要告诉大家,VBA功能很强大,但并不是万能的,也并不是 所有工作都需要用VBA来解决,也并不是所有工作用VBA来解决都会很简单,这 要根据实际情况而定,有些工作你用VBA来解决的话相反会变得很麻烦。VBA与宏刚开始的内容听起来很枯燥,请大家不要分心,耐着性子看下去,兴趣总是 慢慢积累的。1、亲自动手,录制一段属于自己的宏提到VBA,相信很多人想到的就是宏,但是VBA与宏是不是一回事我觉得它End sub上面这个并不是真的程序,但都有了程序的思想了,程序里,事件、 对象、属性及过程都有了,你能找出来吗?多尝试,温故知新,你可以想着用程序去解决一些你在使用Ex

39、cel过程中遇到的问题,每一个问题的解决,你都会发现自己得到了很大的进步.好了,还是那句话,路在脚下,继续走,精彩会慢慢为你上演, 让我们一起努力,共同进步。在上面,我们简单介绍了 VBA的开发环境、几个常用的窗口,并对对象、对 象的属性、对象的方法、对象的事件等概念作了简单的介绍,贴子大家认真看了 吗有没有一点点的收获学习成绩如何? 什么是对象什么是集合什么是属性什么是方法什么是事件如何正确地表示它们? 这些,你都能回答了吗? 先沉思三秒钟,如果你不能回答,那请赶快回过头去,再看一遍,我们说VBA是采用面向对象的程序设计方式,这些都是很重要的概念,如果不弄清楚, 实际应用时,你可能会感到手忙

40、脚乱。如果已经掌握了,那让我们一起继续本贴的内容。这次,我们将继续单调的基本功练习,讲一些VBA里面的关键字,为程序 设计打下基础,还是那句话,希望你不要嫌内容的单调,一口你永远也吞不下一 个大胖子,学习是一个循序渐进的过程。数据类型、变量、常量、数组VBA的主要目的是什么不用说了你也知道,当然是处理数据。某些数据存在于对象中,如工作表的单元格区域里,某些数据存在于我们自定义 的变量中。1、数据类型数据类型告诉计算机如何将数据存储在内存中,如以整数、字 符串、日期等。数据类型是变量的特性,数据类型包括:数据类型存储空间大小范围Byte1个字节0 到 255Boo Iean2个字节True 或

41、FalseInteger2个字节-32,768 到 32, 767Long (长整型)4个字节-2,147,483,648 到 2,147,483,647Single (单精度浮点型)4个字节负数时从到;正数时从到Doub 1 e (双精度浮点型)8个字节负数时从到;正数时从到Currency(变比整型)8个字节从-922,337,203, 685,到 922, 337, 203, 685,Decima 114个字节没有小数点时为+/-79, 228,162,514, 264, 337,593,543,950, 335,而小数点右边有28位数时为+/;最小的非零值为+/Date8个字节100年

42、1月1日到9999年12月31日Object4个字节任何Object引用String(变长)10字节加字符串长度0到大约20亿字符串长String(定长)1到大约65,400度Variant(数字)16个字节 任何数字值,最大可达DoubIe的范围22个字节Variant (字符)加字符串长度与变长String有相同的范围用户自定义(利用Type)所有元素每个元素的范围与它本身的数据类型的范围相所需数目同。2、变量变量是用于保存在程序运行过程中需要临时保存的值或对象。就相当于我们在操作工作表的时候插入的辅助单元格、辅助列或辅助表一样。同工作表的单元格一样,变量可以接纳很多种的数据类型,如 其名

43、,程序运行后,变量的值是可以改变的。如何定义变量?定义变量可以使用Dim语句:Dim变量名As数据类型变量名有一定的命名规则,这里我就不详细说明了,需要提醒 的是在程序的设计过程中,你可能会定义很多的变量,为了阅读及修改程序的方 便,你定义的变量名尽量能让人一看就明白这个变量具体代表的是什么。在Dim 语句中,我们可以不必声明变量的数据类型,直接输入“Dim变量名”此时定义 的变量将被指定为Variant类型。但我们在程序设计的过程中,一般应该明确数据的类型,这是 一个好的编程习惯,因为指定数据类型后会提高程序的运行速度。我们可以在模块中输入“Option Expl ict”作为第一句语句来

44、强制声明所有变量。也可以点“工具选项”,在选项对话框里勾选“要求声 明变量这样,VBA在遇到没有声明的变量名称,该语句将导致程序停止。定义变量除了可以使用Dim语句外,比较常的还有:static 语句,Private语句,Public语句。使用不同的语句定义的变量不同的是它们的 作用作用域不同,具体为:(1)如果在一个过程中包含了一个Dim或Stat ic语句,此时声明的变量作用域为此过程,即本地变量。(2)如果在一个模块的第一个过程之前包含了 Dim或Prvate语句,此时声明的变量作用域为此模块里所有的过程,也就是在此模块里所有的 过程都可以使用它,即模块作用域下的变量;(3)如果在一个模块的第一个过程之前包含了 Public语名,此时声明的变量作用域为所有模块,即公有变量。变量的作用域是指变量保留其值的这段时间,也称为变量的生 成周期,它决定变量可以用于哪个模块或过程中。给变量赋值用等号(=)是VBA里的赋值运算符。比如我们把“我在学习VBA变量! ”这个字符串赋给变量A,则 直接输入:A二我在学习VBA变量!对了,你可以在立即窗口里试一下逐条输入:A二”我在学习VBA变量!Mgbo看一下效果。注意,在VBA里文本是要用英语引号引起来的,还有日期要用#号,比如将日期2009-370赋给变量A,则为:A=#2009-3-10#3、常量执

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁