Excel2003高级VBA编程宝典

Excel2003高级VBA编程宝典
Excel2003高级VBA编程宝典

VBA编程规则

1、在自定义函数前加上Private关键字进行声明,该函数将不会出现在Excel的“粘贴函数”

对话框中,但仍然可以在公式中运用它们。如果是专门为其他的VBA过程开发的自定义函数,则应该使用Private关键字进行声明。

2、通常,用户自定义函数后,在“粘贴函数”对话框中将会出现在“用户定义”类别中。

如果希望自定义函数出现在其它的类别中,必须编写和执行VBA代码为自定义函数指定类别。如运行Application.MacroOptions Macro:=”SumPro”,Category:=4语句后,将自定义的SumPro函数指定给“统计函数”类别。

3、与Sub过程不同,自定义函数Function过程并不出现在宏对话框中;当执行VBE

编辑器中的“运行——运行子过程/用户窗体”命令时,如果光标位于某Function过程中,就不能获取宏对话框并从中选择要运行的宏。因此,在开发过程的时候,必须采取其它方式对自定义函数进行测试,可以设置调用该函数的过程;如果该函数是用在工作表公式中的,可以在工作表中输入简单的公式进行测试。

4、如果在公式中使用了自定义函数,但返回值“V ALUE!”,表明函数中有错误。错误

的原因可能是代码中的逻辑错误、可能给函数传递了不正确的参数、可能执行了禁用的动作如试图更改单元格的格式。

5、在自定义函数中使用参数时,可选参数必须在任何必需的参数之后。在参数名称前

加上关键字Optional即可指定一个可选的参数。

如果必须确定某可选的参数是否传递给了某函数,应将该参数声明为Variant类型,然后在过程代码中使用IsMissing函数来进行判断。

要创建包含不定数量参数的自定义函数,使用一个数组作为最后一个(或惟一的)参数,并在数组前面加上关键字ParamArray。关键字ParamArray只能用于参数列表中的最后一个参数,其数据类型总是Variant并且是一个可选的参数。

6、在自定义函数的程序代码中,应确保至少有一次把合适的值赋给了函数的名称。

7、函数的名称必须遵循一定的规则(与变量名称相同)。最好不要采取与单元格地址相同

的形式,并且还要避免使用与Excel内置函数名称相同的名称,否则,Excel会使用内置函数。

8、如果想将Case关键字和相应的语句放在同一行上,在Case语名与相应语句间加上

分隔符冒号(:)。

9、通常情况下,VBA中对文本进行比较等操作是区分大小写的,若将语句Option

Compare Text添加到模块的顶部,则程序执行时不会区分大小写。

10、要处理单元格区域,在代码中不必先选项中该单元格区域。

1、编写自定义函数时,必须在VBA模块中,而不是在与ThisWorkbook、工作表和用户

窗体关联的代码模块中。

2、如果代码要选中单元格区域,则该区域所在的工作表必须是活动的,可以使用Activate

方法来激活某工作表。

3、尽量在VBA代码中使用命名的单元格区域。

4、当通过快捷键选择单元格区域的时候,如果用宏录制器生成代码,则要认真检查代

码中是否有对选中的实际单元格录制硬编码的引用。

5、如果某个宏应用于当前单元格区域中的每个单元格,但用户可能会选中整行或整列,

通常,我们不需要遍历选区中的每个单元格,那么这个宏应创建一个子选区,使其只由非空单元格组成。

6、Excel允许同时有多个选区。

7、若定义了单元格区域的名称,则在代码中使用定义的名称时,即使在名称单元格区

域中添加或删除了行或列,也能确保正确使用该单元格区域。

8、在VBA代码中使用注释,可以简要描述编写的每个过程的目的、对过程所做的任何

修改、描述变量的目的等。

通过使用VBE中“编辑”工具栏的“设置注释块/解除注释块”,也可以将VBA语句暂时设置成注释块,以便于调试。

9、在工作表中编辑控件。在拖动控件的同时按Alt键,按钮将与工作表的网格线对齐;

在拖动的同时按Shift键,按钮成正方形

10、通常,将Application对象的EnableEvents属性设置为False即可禁止事件发生。但

要注意的是,这个属性只对真正的Excel对象(如Workbooks,Worksheets,Charts等)的事件产生作用。

2、Excel2003高级VBA编程宝典》学习体会

这是一本真正带我走正VBA编程殿堂的书!三个月前,在新华书店闲逛时,我发现了她,突然间感觉如获至宝,这不正是自已梦寐以求的书吗。于是,我开始了对本书的阅读。渐渐地,对VBA有感觉了,自已好像入门了,以前模糊的概念也变得清晰了,自已能看得懂别人的程序了,自已也会写出自已的程序了,调试程序的成功率大大提高,还会一些技巧了。更为重要的是,随着自已的进步,对VBA编程的兴趣也日渐浓厚,也使得自已能得以坚持的学习,自然而然地,VBA的编程水平也得到了逐步提高。

想起自已刚开始学习VBA的激情,却总被一次次的挫折和失败所打倒:自已也看了不少的书,却总是入不了门;很简单的问题,也不会编程解决,也总是纳闷别人怎么能写出程序来,自已为什么不能;

我看过这么多书了,我也仿照着把程序编写出来了啊,怎么调试总是出错呢?《Excel2003高级VBA 编程宝典》(下面简称《宝典》)重新激发了我对VBA的热情,简直有了点爱不释手、相见恨晚的感觉。

可能正应了那段话:有些书根本不能读,有些书您只需略读,有些书您浏览一遍就行了,有些书您需择其重点而阅,有些书要作为工具书随时查阅,而有些书则需要精读,细细的品味、反复的咀嚼。《宝典》正是这样一本您不仅需要一页一页认真阅读和理解,而且可以将之作为工具书使用的书。在这本书上花费时间,您绝对是值得的,因为随着您阅读的增多,您的VBA编程水平也会有质的飞跃。

这是一本内容全面的书,全书共分为8大部分。作者首先从Excel的起源开始,讲述了Excel的历史,并阐述了Excel应用程序软件的角色和地位;然后概略地讲述了Excel的各项界面和功能,以及公式技巧,并全面介绍了Excel的文件格式。接着,作者用2章的篇幅详细回答了为什么要进行Excel应用程序开发,应用程序开发的程度,以及怎样进行应用程序开发等问题。本书下面的内容,就进入VBA编程的正题了。作者首先介绍了VBA的编程环境、VBA语言元素和基本的语法基础,然后详细讲解了VBA的两个重要的过程:Sub过程和Function过程,并通过大量的示例演示了VBA的编程方法和技巧。接下来,作者用4章的内容讲述了VBA与用户交互的工具——用户窗体,在这些章节中,作者详细讲述了用户窗体的基本知识、常用的控件和用户窗体编程的一些方法技巧。在本书的第5部分,作者通过一个实用程序的开发,演示了程序开发的步骤和方式;然后讲解了用VBA操作数据透视表和图表的知识;再用一章的篇幅介绍了Excel的各类事件;最后,讲述了Excel如何与其他应用程序交互,以及如何创建和使用加载宏。作者在第6部分详细介绍了大家很感兴趣了定制Excel界面的知识,即如何创建自定义工具栏和如何创建自定义菜单。在本书的剩余部分,作者全面介绍了怎样为应用程序提供帮助文档、Excel的版本和语言等的兼容性问题、如何用VBA来处理文件、如何处理VB组件、

类模块知识等方面的内容,列出并回答了在Excel编程中常见的问题。

这是一部大部头的书,全书近700页。因此,在阅读本书时,您需要有恒心。当然,如果您是真正的Excel爱好者,对Excel VBA感兴趣,相信您会坚持下去的,并且我也相信,书中的知识和您的进步将会激起您的阅读欲望和更浓的兴趣。

这本书中的内容博大精深,囊括了Excel VBA编程的方方面面。在一开始,自已就将本书全面阅读完了一遍,大致了解了本书的结构,也感觉到在开始学习时不可能面面惧到,这样会适得其反。因此,我确定了自已先从基础学起,重点突破,以点带面,逐步加深的学习原则。在这三个月里,自已利用工作之余,反复阅读学习和实践着自已认为应该理解和掌握的基础部分,虽然其它部分还未深入涉及,但我相信,基础掌握牢固后,其它的部分就水到渠成了。下面,就我自已在现有阅读基础上对本书的理解,谈谈《宝典》的特点:

1、本书内容全面,组织结构合理,从上面简要的介绍也可窥知。本书先讲解了VBA编程的语法知识,并穿插着Excel对象模型,然后进入用户窗体的讲解,直至高级应用。书中的每一部分,每一章节都是按照由基础到高级应用的结构安排的,由浅入深,讲解透彻。

2、在您阅读本书前,需要一些Excel本身的基础知识。这也是由Excel VBA编程自身的特点所决定的,因为Excel VBA是对Excel应用程序的操作,您自然需要先了解Excel了,这样才能更好地控制和操作它。在本书的第一部分,作者也全面概述了Excel的基础知识,当然,如果您在阅读本书前,阅读一下作者所著的《中文版Excel 2003宝典》,效果会更好。

3、书中有大量的VBA示例和语句。这也是作者写作的方式吧,因为作者并不想把本书写成一本晦涩难懂的理论书,而是想通过浅显简单的示例来对各个知识点进行说明,这样学习起来更容易理解,也更快捷。

4、在书中穿插讲解了很多编写VBA程序的好习惯,以及一些重要的方法和技巧。譬如,强制对所有变量进行声明、在语句中,即便是默认的属性也要写全、调用子程序时,最好写上Call关键字、善于在程序代码中加上注释;对长对象的引用、尽量使用With…End With构造等。还有,应用程序的开发过程,以及VBA程序编写中的一些细节问题。

5、您也可以将本书作为一本工具书来使用。当您在实际工作中碰到问题时,您可以查阅本书的相关部分。

6、书中也介绍了很多VBA的学习方法,并且很具有概括性。下面辑录一些:

(1)掌握最好的方式就是使用。

(2)通过示例可以加速学习程序设计概念的过程。

(3)通常,设计良好的示例比对基础理论的叙述更具有说服力。

(4)好的教材和示例是提高的得力助手。

(5)实用程序不一定很复杂,有一些最有用的实用程序实际上非常简单。

(6)如果有很切实的目标,学习VBA就会更快。起先很难掌握VBA,但是具体的实践会使其简单很多;试验是掌握VBA的关键;Excel几乎可以做任何事情;加强对VBA源代码的学习,特别是高质量源代码的学习。

我想,这也是老外写书的一些特点吧。在他们的书中,不仅很详细地介绍知识,而且不时地告诉读者如何学习,还带有一些富含哲理的语言。

《宝典》是一本经典读书,处处闪耀着知识的火花。她经得起反复阅读,并且每次阅读都有新的收获和感受。本书内容丰富,适合不同的VBA层次的读者。根据本书的特点和自已的阅读经验,建议不同水平的读者阅读方法如下:

1、对于初学者和刚入门的读者,您可以先阅读学习第3部分,本人觉得对于初学者,该部分绝对是精华,值得反复研读。然后学习用户窗体知识,就是第4部分的第12章、第13章和第14章。接下来,可以学习第19章,理解Excel的事件。最后,是第22章和第23章,来创建自定义工具栏和菜单。

2、对于已有一定VBA编程经验的读者,您可以将上述章节通读一篇,主要是关注作者所介绍的一些

方法技巧和经验,然后,再阅读学习VBA编程的高级部分,即用户窗体的高级技巧、操作数据透视表和图表、开发实用程序、与其它应用程序交互、创建和使用加载宏、处理文件和VB组件、以及类模块等方面的知识。

3、对于已熟练掌握VBA编程的读者,通读本书,您也能找到一些好的方法技巧和经验,并且还能作

为您的工具书,以备不时之需。

4、在阅读本书时,您要注意总结归纳,例如,语法规则、优秀的示例、好的方法技巧等。我总认为,

有总结归纳,基础才能打扎实,才能有更大的收获和提高。

当然,任何事物都不可以是完美的,总会有其不足的地方。就我个人的理解,感觉到《宝典》可能存在以下的不足,这也可能与作者写作的思路和方式有关。

1、没有专门的详细讲解Excel的对象模型,而是穿插着在示例中使用,因此,有些示例可能难于理解。

因此,您在阅读本书的基础上,再配备一本专门介绍Excel对象的书,效果将会更好。

2、对ExcelVBA与外部数据结合应用的知识介绍很少,好像只用了一小节。因此,建议在理解和掌握

本书的大部分内容后,再找一些书和资源,学习操作外部数据库的知识,将会对Excel的功能大为扩展,也顺应电子表格技术发展的潮流。

3、自已感觉书中译文稍有欠缺。不过,您理解就行了,特别是对模糊的部分,您可以结合上下文来理

解。

读书对我们来说是很重要的,正如作者所说“好的教材和示例是提高的得力助手”。特别是对于学习一门知识,一定要有一本好的书籍作为指导。在您学习的过程中,在一定的时期和阶段,一本书就够了,确切地说,是一本好书就足够了。当然,您需要对她反复研究,并不断实践。在前段学习《宝典》的过程中,自已也体悟到了一些学习方法和感受:

1、学习初期,最好能找到一本适合自已的书,尤其是经典读书,这对于自已正确认识自已所学的知识,

以及水平的提高都大有好处,可以少走弯路,缩短自已领悟的时间。对于不适合自已的书,宁可不读,免得花费时间和精力。至于如何找到好书,可以多看看书的内容,看看书评,看看出版次数等。

2、对于书中经典部分,一定要反复阅读,并理解领会,直至运用自如。重复,重复,再重复,这是我

们从上学起就一直使用的最原始的方法。

3、学习一定要坚持,要相信别人能做的自已也能做到,别人写出来的东西,自已也一定能看懂。当您

学习到一定程度后,自然提高,量变产生质变,这是永远不变的道理。学习过程中,切忌急于求成,否则会前功尽弃。有时,您可能暂时弄不明白的东西,先可以放下,继续往后阅读,随着您理解的深入,自然就会明白了。

4、善于总结归纳。这点在前面已说过了。

《宝典》确实是一本值得一读的好书。体会颇多,感受颇多,可能随着自已进一步的阅读学习,会有更多的体会和新的感受,到时再写出来,与大家分享。

3、

相关主题
相关文档
最新文档