VBA编程规则及方法技巧

转载 2006年06月15日 14:12:00


1、在自定义函数前加上Private关键字进行声明,该函数将不会出现在Excel的“粘贴函数”对话框中,但仍然可以在公式中运用它们。如果是专门为其他的VBA过程开发的自定义函数,则应该使用Private关键字进行声明。
2、 通常,用户自定义函数后,在“粘贴函数”对话框中将会出现在“用户定义”类别中。如果希望自定义函数出现在其它的类别中,必须编写和执行VBA代码为自定 义函数指定类别。如运行Application.MacroOptions Macro:=”SumPro”,Category:=4语句后,将自定义的SumPro函数指定给“统计函数”类别。
3、与Sub过程不同,自 定义函数Function过程并不出现在宏对话框中;当执行VBE编辑器中的“运行——运行子过程/用户窗体”命令时,如果光标位于某Function过 程中,就不能获取宏对话框并从中选择要运行的宏。因此,在开发过程的时候,必须采取其它方式对自定义函数进行测试,可以设置调用该函数的过程;如果该函数 是用在工作表公式中的,可以在工作表中输入简单的公式进行测试。
4、如果在公式中使用了自定义函数,但返回值“VALUE!”,表明函数中有错误。错误的原因可能是代码中的逻辑错误、可能给函数传递了不正确的参数、可能执行了禁用的动作如试图更改单元格的格式。
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等)的事件产生作用。

VBA常用技巧代码解析

http://club.excelhome.net/thread-395683-1-1.html
  • navy2009
  • navy2009
  • 2012年02月27日 21:22
  • 1317

VBA技术技巧收集(一)

VBA技术技巧收集(一)分类:ExcelVBA>>技术技巧[001]在工作表中插入图片使用Insert方法,例如,下面的代码将从Web网上相应的地址中获取图片并在当前工作表中以活动单元格为起点放置图片...
  • ZOU_SEAFARER
  • ZOU_SEAFARER
  • 2007年01月26日 13:58
  • 1481

公民身份证编码规则

15位的身份证号dddddd yymmdd xx p18位的身份证号dddddd...
  • zsczyhua
  • zsczyhua
  • 2008年02月14日 14:15
  • 2918

ASP获取数据库表名、库名、字段名的方法

这篇文章主要介绍了ASP获取数据库表名、库名、字段名的方法,本文例子使用的是SqlServer数据库,需要的朋友可以参考下 ASP获取数据库表名,字段名 以SQLServer为例: ...
  • bianjing40
  • bianjing40
  • 2015年10月22日 21:33
  • 263

销售技巧之《疯狂成交》

销售技巧之《疯狂成交》 发布时间:08月26日 00:02 第一讲《疯狂成交》概述 本门课程积累了讲师七年的研究,通过大量的、乃至成千上万家店面经营的实战研究所总结出的一门实战性...
  • love_hot_girl
  • love_hot_girl
  • 2015年08月04日 17:06
  • 2462

VBA 对 文件和文件夹的操作

我们在使用Excel VBA进行处理数据时,或多或少会涉及到如何操作文件和文件夹。本节将重点讲述如何新建、打开、删除、复制、移动和重命名文件和文件夹操作等。对于文件和文件夹操作,我们一般通过下面方法:...
  • liujiaqiid
  • liujiaqiid
  • 2010年06月24日 19:04
  • 4492

ADO API 参考( ADO方法)之四

Open 方法 (ADO Connection)打开到数据源的连接。语法connection.Open ConnectionString, UserID, Password, Options参数Con...
  • wybm
  • wybm
  • 2001年07月23日 13:40
  • 1179

对vba的对象、属性、方法

对vba的对象、属性、方法模模糊糊的,有一种晕的感觉~~ 1、认识“方法” 2在VB...
  • gxiyv
  • gxiyv
  • 2007年04月23日 14:57
  • 3795

VBA行拷贝

Sub 拷贝信息()Dim workbookTmp As Workbook Dim worksheetTmp As Worksheet Dim rangTmp As Range Dim i% Dim ...
  • Ctrain
  • Ctrain
  • 2016年05月05日 23:39
  • 911

VBA入门--变量的基础内容和知识点

Excel的代码主要是针对Excel的各个对象进行操作的,因此最基础的就是VBA的基本语法,基本语法主要包含:VBA的变量、常用运算和循环或分支结构。我理解的这三部分是最主要的。 所谓变量,顾名思义就...
  • bangemantou
  • bangemantou
  • 2017年04月15日 12:26
  • 671
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VBA编程规则及方法技巧
举报原因:
原因补充:

(最多只允许输入30个字)