《Excelvba入门教程.docx》由会员分享,可在线阅读,更多相关《Excelvba入门教程.docx(34页珍藏版)》请在课桌文档上搜索。
1、VBA入门系列讲座1.lVBA是什么直到90年头早期,使应用程序自动化还是充溢挑战性的领域.对每个须要自动化的应用程序,人们不得不学习一种不同的自动化语国例如:可以用excel的宏语言来使excelH动化,运用wordBASIC使WOrd自动化,等等.微软确定让它开发出来的应用程序共享一种通用的自动化语言-VisualBasicForAPPHCatiOn(VBA),可以认为VBA是特别流行的应用程序开发语自VASUA1.BASIC的子集.事实EVBA是“寄生于“VB应用程序的版本.VBA和VB的区分包括如卜几个方面:1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(excel
2、等)自动化2. VB具有自己的开发环境,而VBA必需寄生于已有的应用程序.3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*EXE),而VBA开发的程序必需依辕于它的“父”应用程序,例如excel.尽管存在这些不同,VBA和VB在结构上仍旧特别相像.事实上,假如你已经了解了VB,会发觉学习VBA特别快.相应的,学完VBA会给学习VB打Z坚实的基础.而且,当学会在excel中用VBA创建解决方案后,即已具备在wordaccessOUT1.OOKFOXPROPROWERPOINT中用VBA创建解决方案的大部分学问. VBA一个关键特征是你所学的学问在微软的一
3、些产品中可以相互转化. VBA可以称作excel的“遥控器”.VBA原委是什么?更准确地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.此外,假如你情愿,还可以将excel用做开发平台实现应用程序.l2Excel环境中基于应用程序自动化的优点或许你想知道VBA可以干什么?运用VBA可以实现的功能包括:1 .使重复的任务自动化.2 .自定义excel工具栏,菜单和界面.3 .简化模板的运用.4 .自定义excel,使其成为开发平台.5 .创建报表.6 .对数据进行困难的操作和分析.用excel作为开发平台有如下缘由:1. excel本身功能强大,包括打印,文件处理,格
4、式化和文本编辑.2. excel内置大量函数.3. excel界面熟识.4. 可连接到多种数据库用其他语言开发应用程序,一半的工作是编写一些基本功能的模块,包括文件的打开和保存,打印,复制等.而用excel作为开发平价,则由于excel已经具备这些基本功能,你要做的只是运用它.1.3录制简洁的宏在介绍学习VBA之前,应当花几分钟录制一个宏。新术语:“宏”,指一系列CXCel能够执行的VBA语句。以下将要录制的宏特别筒活,只是变更单元格颜色。请完成如下步骤:1)打开新工作簿,确认其他工作簿已经关闭。2)选择Al单元格。调出“常用”工具栏。3)选择“工具”-“宏”-“录制新宏”。4)输入“变更颜色
5、”作为宏名替换默认宏名,单击确定,留意,此时状态栏中显示“录制”,特殊是“停止录制”工具栏也显示出来。替换默认宏名主要是便于分别这些宏。宏名最多可为255个字符,并且必需以字母起先。其中可用的字符包括:字母、数字和下划线。宏名中不允许出现空格“通常用下划线代表空格。5)选择“格式”的“单元格”,选择“图案”选项中的红色,单击“确定”。6)单击“停止录制”工具栏按钮,结束宏录制过程。假如停止录制”工具栏起先并未出现,请选择“工具”一“宏”-“停止录制”。录制完个宏后就可以执行它了。1.4 执行宏当执行一个宏时,excel根据宏语句执行的状况就像VBA代码在对excel进行“遥控但VBA的“遥控”
6、不仅能使操作变得简便,还能使你获得一些运用excel标准吩咐所无法实现的功能。而且,旦熟识了excel的“遥控”,你都会惊奇自己在没有这些“遥控”的状况下,究竟是怎么熬过来的。耍执行刚才录制的宏,可以按以下步骤进行:D选择任何一个单元格,比如A3。2)选择“工具”-“宏”-“宏”,显示“宏”对话框。3)选择“变更颜色”,选择“执行”,则A3单元格的颜色变为红色。试者选择其它单元格和几个单元格组成的区域,然后再执行宏,以便加深印象。1.5 查看录制的代玛究竟是什么在限制excel的运行呢?你可能有些怀疑.好,让我们看看VBA的语句吧.D选择“工具”一“宏“一“宏”,显示“宏”对话框。2)单击列表
7、中的“变更颜色,选择“编铲按钮。此时,会打开VBA的编辑器窗口(VBE)o关于该编辑器,以后再具体说明,先招留意力集中到显示的代码上。代码如下:(口期和姓名会有不同)SUb变更颜色O变更颜色MacroXW记录的宏2000-6-10WithSaeCtiOI!.Interior.Colorindex=3.Pattern=xlSolid.PatternColorIndex=xhutomaticEndWithEndSub将来会特别熟识这种代码,虽然现在它们看上去像一种惊奇的外语C学习VBA或编程语言在某种程度上比较像在学习一种外语。Sub变更颜色0:这是宏的名称。中间的以“开头的五行称为“注稀”,它在
8、录制宏时自动产生,以With开头到EndWith结束的结构是With结构语句,这段语句是宏的主要部分。留意单词“selection”,它代表“突出显示的区域”(即:选定区域)。WithSelection-Interior:它读作“选择区域的的内部”.这整段语句设置该区域内部的一些“屈性”。其中:.ColorIndex=3:将该内部设为红色。留意:有一小圆点,它的作用在于简化语句,小圆点代替出现在With后的词,它是With结构的一部分。另外:红色被数字化为3.(红色警戒是否可称作:3号警戒,嗯?)有爱好的话,你将3改为其他数字试试看。.Pattem=XlSolid:设置该区域的内部图案。由于是
9、录制宏,所以,虽然你并未设置这项,宏仍旧将其记求下来(因为在“图案”选项中有此项,只是你为曾设置而已)。xlS。Iid表示纯色。.PattemColorIndex=XlAutomatic:表示内部图案底纹颜色为自动配色。EndWith:结束With语句。EndSub:整个宏的结束语1.6 编辑录制的代码在上一节,我们录制r一个宏并杳看r代码,代码中有两句事实上并不起作用。哪两句?现在,在宏中作个修改,删除多余行,直到和下面代码相同:SUb变更颜色()变更颜色MacroXW记案的宏2000-6-10WithSdeCtion.Interior.Colorindex=3EndWithEndSub完成
10、后,在工作表中试验一下。你会发觉结果和修改前的状况一样。在With语句前加入一行:Range(A5).Select试着运行该宏,则无论起先选择哪个单元格,宏运行结果都是使A5单元格变红.现在可以看到,编辑录制的宏同样特别简洁。须要编辑宏是因为以下三个方面的绿由C一:在录制中出错而不得不修改。二:录制的宏中有多余的语句须要删除,提高宏的运行速度C三:希望增加宏的功能。比如:加入推断或循环等无法录制的语句。1.7 录制宏的局限性希望自动化的很多excel过程大多都可以用录制宏来完成.但是宏记录器存在以局限性.通过宏记录器无法完成的工作有:1)录制的宏无推断或循环实力.2)人机交互实力差,即用户无法
11、进行输入,计算机无法给出提示.3)无法显示excel对话框.4)无法显示自定义窗体.1.8 小结本学时中,你已经驾驭了VBA的一些基础学问,你会录制宏、编辑宏而且了解了录制宏的局限性.你很努力.并且已经为将来学习VBA甚至VB等编程语言打下了基础.关键是你已经了解了一个谜底,就是说,你了解了什么是编程.卜面是些小练习,做完后才可以去玩哟.思索:I)VBA只能用于excel吗?2)VBA是基于哪种语言1?3)说说excel和VBA的关系.4)为什么要用宏?原文发表时间:未知dvnews-page=(2):处理录制的宏2.1 为宏指定快捷健你或许希望为常常运用的宏指定快捷健。快捷键是指键的组合,当
12、其按产时执行一条吩咐。例如:CTR1.+C在很多程序中代表“复制”吩咐。当给宏指定了快捷键后,就可以用快捷健来执行宏,而不必通过“工具”菜单。留意:当包含宏的工作簿打开时间,为宏指定快捷键会覆盖excel默认的快捷键。例如:把CTR1.+C指定给某个宏,那么CTR1.+C就不再执行复制吩咐。用以卜方法可以打印出excel的快捷键清单(用A4纸打印共有24页之多):D打开excel帮助文件并选择“书目”选项。2)从“运用快捷键”文件夹中选择“快捷健”标题。3)右击该标题,从快捷菜单中选择“打印”。4)选择“打印所选标题和全部子主题”,单击“确定”。可以在创建宏时指定快捷键,也可以在创建后再指定。
13、要在创建(录制)宏时指定快捷键,只须在录制宏时在输入宏名后,在“快捷键”文本框中输入相应的键。录制宏后指定快捷犍也很简洁,只需选择“工具”“宏”,显示“宏”对话框,选择要指定快捷键的宏,再单击“选项”按钮,通过“选项”对话框进行设置。2.2 确定宏保存的位置宏可保存在三种可能的位置:D当前工作簿。(只有该工作簿打开时,该宏才可用。)2)新工作簿.3)个人宏工作簿。2.3 个人宏工作修个人宏工作簿,是为宏而设计的一种特殊的具有自动隐藏特性的工作簿。第一次将宏创建到个人宏工作簿时,会创建名为“PERSONA1.X1.S”的新文件。假如该文件存在,则每当excel启动时会自动将此文件打开并隐藏在活动
14、工作簿后面(在“窗口”菜单中选择“取消隐藏”后,可以很便利地发觉它的存在。)假如你要让某个宏在多个工作簿都能运用,那么就应当创建个人宏工作簿,并将宏保存于其中。个人宏工作簿保存在“X1.START”文件夹中。具体路径为:C:WINDOWSProfilesApplicationDataMicrosoftexcelX1.STARTo可以以单词“X1.START”查询。留意:假如存在个人宏工作簿,则每当CXCel启动时会自动将此文件打开并隐藏。因为它存放在X1.START文件夹内.2.3.1 保存宏到个人宏工作停本练习,将保存一个简洁的宏到个人宏工作簿,该宏为文本加卜划线并改为斜体,步骤如下:1)建
15、立一个名为“HOUR2”的工作簿,选择工具”-“宏”-录制新宏”,显示“录制新宏”对话框.2)输入”格式化文本”作为宏名.3)从“保存在”下拉框中选择个人宏工作簿”.4)单击“确定”按钮.现在进入求制模式.5)单击“斜体”工具栏按钮.一段时间内,鼠标出现沙漏,特殊是在第一次创建个人宏工作簿时,因为excel在创建该工作簿.6)单击“下划线”按钮.7)停止录制.2.3.2 运用并儡辑个人宏工作簿中的宏刚才已经保存了一个宏到个人宏工作簿,现在可以在任何工作簿中运用该宏可按如下步骤操作:1)关闭全部excel工作簿.2)随意打开一个excel文件.(excel自动将个人宏工作簿同时打开并隐藏J3).
16、在A3中输入你的名字4)选择工具”-“宏”,显示宏对话框.现在可以在宏列表中看到格式化文本”这个宏.5)选择格式化文本”宏,并执行.现在A3单元格中,你的名字变为斜体字还带有下划线选择”窗口”-“取消隐藏”,可以将PERSONA1.X1.S显示出来,其中没有任何文字,但通过VBA编辑器可以在其中的模块中找到“格式化文本”这个宏在VBA编辑器中可以对该宏进行干脆编辑或者删除.假如PERSONA1.X1.S中一个宏都没有,在启动excel时仍会打开PERSONA1.X1.S,这或许是excel存在的一个小毛病.2.4 将宏指定给按钮即使通过快捷键可以是宏的执行变快,但是一旦宏的数增多了也难于记忆,
17、而且,假如宏是由其他人来运用,莫非你要他们也记住那么多的快捷键吗?作为excel开发者,一个主要的目标是为自动化供应一个易于操作的界面按钮”是最常见的界面组成元素之一.通过运用“窗体”工具栏,可以为工作簿中的工作表添加按钮。在创建完一个按钮后,可以为它指定宏,然后你的用户就可以通过单击按钮来执行宏。在本练习中,将创建个按钮,并为它指定一个宏,然后用该按钮来执行宏。具体步骤如下:1)打开“H0UR2”工作簿。2)调出“窗体”工具栏。3)单击“窗体”工具栏中的按钮”控件,此时鼠标变成十字形态。4)在希望放置按钮的位置按下鼠标左键,拖动鼠标画出一个矩形,这个矩形代表了该按钮的大小。对大小满足后放开鼠
18、标左键,这样一个吩咐按钮就添加到了工作表中,同时excel自动显示“指定宏”对话框。5)从“指定宏”对话框中选择“格式化文本”,单击“确定”。这样,就把该宏指定给吩咐按钮。6)在按钮的标题“按钮1”前单击鼠标左键,按FDE1.ETE直到删除全部文本,输入“格式化”作为标题。7)单击按钮外的随意位置,现在该按钮的标题由默认的“按钮1”变为“格式化”而且被指定了一个宏。8)试卷在某个单元格中输入文本,单击按钮运行该宏。当鼠标移动至该按钮时自动变成手的形态,假如要变更其大小或标题,只需用右健单击该按钮就可以进行修改和设置。很明显,你再也不需记住宏的名字或快捷键了,只需按一下按钮。2.5 将宏指定给图
19、片或其他对象要执行宏有多种方法可以选择,可以将宏指定给按钮等控件,还可以指定给图片、自定义工具栏、窗体甚至可以将宏指定给某个“事务”,比如单击工作表,双击工作表,激活工作表,打开工作簿等等,“事务”是一个重要的概念,除此而外“方法”“对象”都是将来你会常常接触到的。现在它们看来特别抽象,但是将来你会很熟识这些词语。指定宏到图片特别简洁,只需单击某个图片,单击快捷菜单中的“指定宏”进行设置即可。假如不希望在工作表上添加控件或图片执行宏,还有种方法可以选择:将宏指定给“工具栏按钮”,可按如下步骤进行:D打开HOUR2”工作簿,选择“工具”-“定义”,显示“自定义工具栏”对话框。3.1 cel开发过
20、程简介须要对以卜问题有个大致的概念.1)堆运用一一这确定了程序的操作难度和界面感观.2)数据来源和保存在哪里-一一这确定r程序的结构.3)如何操作一这将确定程序的界面和细微环节.4)数据处理的结果一一-最终确定程序的价值.3.2 相织不同的控件起先时请关闭全部工作簿,打开一个新工作簿并另存为“HoUR3”.在工具栏上单击鼠标右健,从快捷菜单中选择“窗体“,显示“窗体”工具栏.其中有16个控件,只有9个可放到工作表内。D标签:它用于表现睁态文本。2)分组框:它用于将其他控件进行组合。3)按钮:用于执行宏吩咐。4)复选框:它是一个选择控件,通过单击可以选择和取消选择,可以多项选择。5)选项按钮:通
21、常几个选项按钮组合在一起运用,在一组中只能选择一个选项按钮“6)列表框:用于显示多个选项并从中选择。只能单选。7)组合框:用于显示多个选项并从中选择C可以选择其中的项目或者输入一个其它值。8)滚动条:不是你常见的来给很长的身体添加滚动实力的控件,而是种选择机制。例如调整过渡色的滚动条控件。包括水平滚动条和垂直滚动条,9)微调控件:也是一种数值选择机制,通过单击控件的前头来选择数值。例如变更WindOWS日期或时间就会运用到微调控件。3.3 向工作表添加控件用excel设计界面特别简洁,要将控件添加到工作表上,可以按以下步骤操作:1)创建新工作簿并另存为HOUR3”,显示“窗体”工具栏.2)选择
22、“标签”控件.3)将鼠标定位到El,此时鼠标变成小十字.4)按卜左键,拖动大约四个单元格长度,放开鼠标左键.假如希望控件大小易于限制,可在创建该控件时按下A1.T拖动.5)在标签1上单击右键,选择“编辑文字“,现在可以输入文字.完成后,单击任何单元格退出文字编辑.6)通过以匕步骤可以添加其它控件到工作表中,不再赘述.3.4 设置控件的特性设置控件的特性,可以按以下步骤操作:1)选中从前创建的复选框控件,假如没有立刻创建一个.2)右击该控件,选择“限制”选项卡.3)在“单元格域接”中输入Al并确定.4)单击随意单元格,退出设置.5)用鼠标左健单击复选框,Al出现TRUE,这意味着该控件被选中.再
23、次单击该控件,Al出现FA1.SE.6)选择刚才创建的滚动条控件.并调出设置控件格式”对话框.7)在“单元格链接”中输入A3并确定.8)在滚动条外殖意单元格单击鼠标左键,使滚动条不被选择.9)用鼠标单击滚动条上的箭头,则AI的数值增加1,接着单击则Al的数值接着增加.10)保存并关闭该工作簿.3.5 给控件命名当创建一个控件时excel会自动给它指定一个名字,但不便于理解和记忆,为控件取名的方法基本和给单元格或区域取名的方法相同.选中某个控件,再在位于公式栏上的“名字”编辑框输入控件名字.这样就给控件更改了名字.3.6 运用用户窗体假如希望创建专业级的应用程序,并且便利用户输入数据,那么应当运
24、用用户窗体.用户窗体可以作为程序的对话框和窗口.向用户窗体添加控件基本类似于向工作表添加控件,然而笫一步要创建一个用户留体.这可以通过VBA编辑器实现.具体按以卜.步歌操作:D打开“HOUR3m工作簿,选择“工具”-“宏”“VBA编辑器”,打开VBA编辑器.2)在VBA编辑器中选择工具栏上的“插入用户窗体”按钮或者选择”插入”菜单,从下技菜单中选择“用户窗体”现在,VBA编辑器中出现一个名为“USERFoRM1”的窗体控件工具箱”同时出现,在其中有很多已经熟识的控件,另外还有些新的控件.这些新的控件是:A)切换按钮:该控件假如被选中,那么会保持被按下的状态.假如再次单击它就豆原为没有按下的状态
25、.excel工具栏中有几个这样的按钮,例如:”全屏显示“,“加粗“J下划线”以和“身体”工具栏中的“切换网格”等.B)选项卡条(TabStrip):它是包含多个选项卡的控件.通常用来对相关的信息进行组织或分类.例如:你或许希望用选项及条来显示各个地区的销售信息,可以给每个地区设置一个选项卡.在默认时,选项卡包含两页,分别叫做TABI和TAB2,可以添加更多的选项EC)多页:外观类似选项卡条,是包含一页或多页的控件.选项卡条给人相像的外观,而多页控件的各页包含各自不同的控件,有各自不同的布局.多页的例子很多,例如:设置控件格式”对话框和“工具“菜单中的“选项”对话框以和“格式“菜单中的“单元格”
26、对话框.D)图像控件:它允许向窗体上放置图片.图片格式须为z*.bmp,*.cur,*.gif,*.ico,*.jpg,*.wmf.F)RefEdit:这是工具箱中默认状况卜.的最终一个控件。它外观象文本框,通过这个控件可以将用户窗体折棒起来,以便选择单元格区域。还记得在运用fx“粘贴函数”时的状况吗?通过实践,我们会渐渐驾驭每个控件的特性,这的确须要花时间,但不必死记硬背。在对用户曲体设计得满足时,可以对其进行预览,方法是在VBA编辑器中选择该面体,单击“运行”菜单中的三角符号“运行子过程/用户窗体”,三角符号在VBA工具栏上也可能看得到,旁边是一个垂直的等于符号,最右边是个小正方形符号,它
27、们类似于玳音机上的按钮:运行窗体的另一个方法是按F5键。小结:学习完本学时后,我们具备了用于程序界面设计的基本学问。我们对控件不在感到生疏,也明白如何向工作表和抑体添加控件,但控件的内容很多,须要边用边理解.此后,我们将从界面转移到学习编写代码,井最终将二者融合。让我们打算好学习编程吧!疑难解答问题1.怎样确定控件的位置?如何选择添加到工作表还是添加到用户窗体?解答:这完全取决于个人的爱好和应用程序的用户.假如用户对excel特别熟识,那么他们或许更希望以工作表的方式操作.在这种状况下不妨干脆在工作表上创建控件;假如你的用户对excel不熟识或者你须要给用户一个专业的界面感觉,那么应当运用用户
28、窗体.问题2.什么状况卜该用选项卡条而不是多页控件?解答:假如每一页具有相同布局,则应选择选项卡条,否则应当选择多页.本节作业:1.思索:D列举两种可以让用户进行多选一的控件。2)如何将控件与单元格链接起来。2 .推断:D只有在VBA编辑器中才能添加用户窗体。2)在VBA编辑器中看到的街体网格线在运行时会自动显示。3 .填空:()是显示静态文本的控件。dvnews_Page=:理解变固4.4 虹变量是用于临时保存数值的地方.每次应用程序运行时,变量可能包含不同的数值,而在程序运行时,变灶的数值可以变更.为了说明为什么须要变量,可以根据如下步骤创建一个简洁的过程:1)创建一个名为“你叫什么名字”
29、的过程.2)在过程中输入如下代码:Inputbox输入你的名字:现在不要担忧inputbox语句的语法,将在第六学时中了解到有关这条吩咐的更多信息.3)按下F5键运行过程,这时会显示一个输入板,要求输入你的名字.4)输入你的名字并按“确定“按钮,则结束该过程.你输入的名字到那里去了?如何找到用户在输入框中输入的信息?在这种状况下,须要运用变好来存储用户输入的结果.4.4.1 变的数据类型运用变啾的第一步是r解变最的数据类型.变版的数据类型限制变地允许保存何种类型的数据.表4-1列出了VBA支持的数据类型,还列出了各种类型的变量所须要的存储空间和能够存储的数值范围.表4-1VBA数据类型作为AB
30、V程序员,一个目标是选择须要存储空间尽最小的数据类型来保存所须要的数据,这正是表4-1供应各种数据类型存储空间的缘由。例如,要保存诸如班级学生总数这样的小数字,那么Byte数据类型就足够了。在这种状况下,运用SingIe数据类型只是对计算机存储空间的奢侈。4.4.2 用Dim语句儡建交伊f明知)现在,你对变最可以运用的数据类型已经比较熟识r,以下我们将创建变量.创建变量可以运用Dim语句,创建变量通常成为“声明变量”Dim语句的基本语法如下:Dim变量名ASM类型这条语法中的变珏名代表将要创建的变量名.对变量的命名规则和对过程的命名规则相同.这条语句中的数据类型部分可以是表4-1中的任何种数据
31、类型.变肽名必需以字母起先,并旦只能包含字母数字和特定的特殊字符,不能包含空格句号惊羡号,也不能包含字符&$#.名字最大长度为255个字符在接下来的练习中将说明如何在VBA中运用变量,你将要输入你的名字,并用一个消息框将其显示出来.具体步骤如下:1)创建一个名为”显示你的名字”的子程序.2)输入以下代码:PublicSub显示你的名字ODimS名字ASStringS名字=InPUtboX(“请输入你的名字:“)Msgbox“你好”&s名字EndSub3)将鼠标放到过程中的任何地方,按下F5键运行过程,会显示一个4)输入你自己的名字并按回车健,会显示一个消息框,显示的文字中包含你自己的名字.5)
32、单击“确定“按钮,返回过程中.在Dim语句中不必供应数据类型.假如没有数据类型,变量将被定义为Variant类型,因为VBA中默认的数据类型是Variant.你知道这一点后,最初的反应或许是觉得应当不用自己确定数据类型,而将一切抛给VBA.这种观念是完全错误的.你必需确定选择运用何种数据类型。因为Variant数据类型占用存储空间较大(16或22字节)而且它将影响程序的性能、VBA必需辨别Variant类型的变量中存储了何种类型的数据.4.4.3 变It命名的惯例卜.表给出了举荐的变量命名惯例表4-2变量命名的前缀4.4.4 运用IUfi假如你运用过其他编程序语言,可能对数组已经比较熟识口数组
33、是具有相同数据类型并共同享:有个名字的蛆变量的集合.数组中的元素通过索引数字加以区分,定义数组的方法如下:DimarrayJname(n)Astype(其中n是数组元素的个数)例如,假如要创建保存10个学生名字的数组,可以用以下语句:Dims学生名字(9)AsInteger留意,括号中的数字是9而不是10.这是因为在默认的状况K第一个索引数字是0.数组在处理相像信息时特别有用.假设要处理15门考试成果,可以创建15个独立的变最,这意味着要运用15个Dim语句。也可以创建个数组来保存考试成果,具体如下:Dims考试成果(14)AsInteger声明数蛆时的另一种方法是不给定大小。可以在程序运行时
34、定义其大小。通过创建动态数组就可以做到。例如,你的程序要创建表格,可以提示用户输入表格的行和列的数目。声明动态数组的语法如下:Dimdyn_arrayOAstype对数组声明后可以在程序运行时用:ReDim语句指定数组的大小:ReDimdyn_array()(array_size)参数array,size代表数组的新大小。假如典保留数组的数值,请在ReDim语句后运用保留字PreSerVe,具体语法如下:ReDimPreservedyn_array(array_size)4.4.5声明变限后就可以给变盘赋值。请留意卜列语句中为数组变俄赋值时索引数字的运用:程序清单4-4Dimi人数AsInte
35、gerDimi考试成果ASIntegerDimiAsIntegeri人数=inputbox(“输入学生的人数:)RCDimPreservei考试成果(i数/Fori三1toi人数i考试成果=inputbox(输入考试成果&i)Nexti4.5 运用常量现在,你已经知道变埴是存储非静态信息的存储容器.当存储静态信息时可以创建常届.它可以供程序多次运用而且便于记忆.比如圆周率比3.1415926好理解得多.要声明常敬并设置常故的值,须要运用ConSt语句.常痛声明后,不能对它赋个新的值.例如,假设须要声明个常量来保存销项税率,可以运用以下语句:constS销项税率As1.ong=0.17通常常唬声
36、明时用全大写字母以区分变4.6 作用城到现在为止,已经学习了如何定义变盘和常我,但是还不知道在何处定义可以在两个地方定义常量和变地:过程中定义和在模块顶部一个名为”通用声明”的区域内定义.而且定义的位置就确定了作用域.在过程中声明,该变量只能在该过程中运用,及他过程中不能运用这个变也和常盘,这中变以成为局部变质或过程级变址;在模块顶部声明的变我称为模块级变量,该变量在该模块的全部过程中都可以运用。还有一种等级的作用域称为公共级C公共级变量可以在应用程序的任何过程中运用,不论过程和变量是否定义在个模块.这就使得公共级变量:在运用中特别敏捷,但是公共级变量在程序运行时始终保留在内存中,这样就占用了
37、系统资源。要创建公共级变员,可以用Public语句,具体语法如下:PublicvariablenameAsdatatype要创建公共级常量,具体语法如下:PublicconstCONSTANAMEdatatype=value公共级变量或常最必需在模块顶部的“通用声明”区域中定义.4.7 小结本课的电点是变我和常延。在本课中你学会了如何创建变依来保存非隐态的数据。我们了解了VBA的数据类型,我们也学会了创建常电来保存静态的数据。本课的我终部分我们学习了变fit和常见的作用域。4.81.假如希望在多个位置运用变量的数据,应当在何处定义该变量?答:必需在模块顶部的“通用声明”区域内定义C对于模块级变
38、量用Dim语句,对于公共级变量用PUbIiC语句2.模块是否独立于工作簿?答:不,事实上模块是工作簿的一部分,当保存工作簿时,对模块所做的变更也同时保存下来.3.为什么不应当将全部变量定义为Variant数据类型?答:Variant类型的数据,占用较多的内存,并且影响应用程序的性能.dvnews_page=(5):利用VBA设置匚作表运用权限一股爱护工作表实行的方法是用CXCCl菜单中的“爱护”吩咐,方时这尚嫌不足,比如一些机密文件根本要让某些运用者无法看到,但乂须要他来操作工作箱中的其他表,怎么办?可以打开VBA编辑器,打开“工程资源管理器”,双击该工作表,现在出现的是设置该表的属性的编辑僮
39、口,单击窗口左上的下拉列表框,选择WorkSheet,这时再从该箱口右上方的歹悚框中选择ACtiVe(“激活”),这时自动显示如下的语句块:PrivateSubWorksheeCActivateOEndSub在其中加入代码:(假设用“123”作为密码,Sheet”机密文档”为限制权限文档,sheet”一般文档”为工作簿中你认为任何适合的工作表)IfAPPIiCatiOn.InputBox(flMt入操作权限密码:”)三123ThenRange(Al).SelectElseMsgbox密码错误,即将退出!”Sheets(“一般文档”).SelectEndif程序如K:PrivateSubWork
40、sheet_ActivateOIfpHcation.InputBox()123ThenRange(Al).SelectElseMsgBox密码错误,即将退出!”SheetS(“一般文档”).SelectEndIfEndSub这样做仍有个问题,就是越权运用者仍会看到些文件的片段,即在提示密码的那段时间。好,你可以这样做,用上述方法选择工作表的Deactivate事务,输入以下代码:Sheet8(机密文档”).Cdls.Font.ColorIndex-2这段程序使得此工作表在不被激活时,全部文字为白色。然后,在第个程序中的Range(“Al”)Select后插入一行,写入以下代码:ActiveSh
41、eet.Cells.Font.Colorindex=56这段程序,在你输入正确密码后,将该表全部文字转变为深灰色。完整的程序如下:PrivateSubWorksheeCActivateOIfAPPlicattonInputBox(“flHt入血权限产)-123ThenRange(uAlw).SelectShcets(机密文档”).Cells.Font.Colorindex=56ElseMsgBox密码错误,即将退出!”Sheets(“一般文档”)SelectEndIfvdvnews_Page=(6):提高excel中VBA的效率由于Microsoftoffice办公套件的广泛应用,以和该软件版
42、本的不断提升,功能不断完善,在OHiCe办公套件平台上开发出的的VBA应用程序越来越多,而VBA是一种宏语言,在运行速度上有很大的限制C因此VBA编程的方法干脆关系到VBA程序运行的效率,本文列举了一些提高VBA程序运行效率的方法。方法1:尽量运用VBA原有的属性、方法和WQrkSheet函数由于CXCel对象多达白多个,对象的属性、方法、事务多不胜数,对于初学者来说可能对它们不全部了解,这就产生了编程者常常编写与excel对象的属性、方法相同功能的VBA代码段,而这些代码段的运行效率明显与excel对象的属性、方法完成任务的速度相差甚大。例如用Range的属性CUrrentRCgiOn来返回
43、Range对象,该对象代表当前区。(当前区指以旗意空白行和空白列的组合为边界的区域)。同样功能的VBA代码需数十行。因此编程前应尽可能多地了解excel对象的属性、方法。充分利用Worksheet函数是提高程序运行速度的极度有效的方法。如求平均工资的例子:ForEachcInWorksheet(l).Range(AkAlOOOw)TotalValue=TotalValue+c.ValueNextAverageValue=TotalValue/Worksheet(1).Range(Al:A1000).Rows.Count而下面代码程序比上面例子快得多:Averagevalue=Applicati
44、on.WorksheetFunction.verage(Worksheets(l).Range(*AkAlOOOw)其它函数如Count,Counta,Countif5Match,1.ookup等等,都能代替相同功能的VBA程序代码,提高程序的运行速度。方法2:尽量削减运用对象引用,尤其在循环中每一个excel对象的属性、方法的调用都须要通过O1.E接口的一个或多个调用,这些O1.E调用都是须耍时间的,削减运用对象引用能加快VBA代码的运行。例如1 .运用With语句。Workbooks(I),Sheets(I),Rangef*A1:A1OOO).Font.Name=,PayWorkbooks
45、(1).Sheets(I).Range(A1:A1OOOn).Font.FontStyle=*Bold.则以下语句比上面的快WithWOrkbks.Sheets(l).Ran8e(Al:AlOOo).Font.Name=Pay.FontStyle=Bold*EndWith2 .运用对象变量“假如你发觉个对象引用被多次运用,则你可以将此对象用Set设置为对象变量,以削减对对象的访问。如:Workbooks(1).Sheets(1).Range(Al).Value=100Workbooks(1).Sheets(l).Range(A2).Value=200则以下代码比上面的要快:SetMySheet
46、=Workbooksf1).Sheets(1)MySheet.Range(wAlw).Value=100MySheet-RangeCrA2w).Value=2003 .在循环中要尽见削减对象的访问CFork=1To1000Sheets(*Sheet1).SelectCclls(k,l).Value=Cells(l,l).ValueNextk则以下代码比上面的要快:SetTheValue=Cells(IJ).ValueShCetS(Sheet1).SelectFork=1To1000Cells(k,l).Value=TheValueNextk方法3:削减对象的激活和选择假如你的通过录制宏来学习VBA的,则你的VBA程序里肯定充溢了对象的激活和选择,例如Workbooks(XXX),Activate、Sheets(XXX),SelecURange(XXX),Select等,但事实上大多数状况下这些操作不是必需的。例如Sheets(*Sheet3w).SelectRange(Al).Value=100RangeCTA2).Value=200可改为:WithSheets(Sheet3).Range(wAl).Value=100.Range(wA2*).Value=200EndWith方法4:关闭屏幕更新假如你的VBA程序前面三条做得比较差