编码提示与优化技巧
时 间:2008-08-02 08:17:02
作 者:UMVsoft整理 ID:43 城市:江阴
摘 要:编码提示与优化技巧
正 文:
1. 使用Option Explicit
一定要使用Option Explicit。Option Explicit
要求确定所有变量的大小,要不然VBA就会用最大、最灵活的数据类型来保存变量。通常来讲,规模很大、灵活性很强的应用也是最慢的。
2. 慎重选择变量大小
在确定变量大小时,使用尽可能最小的变量尺寸。在整型就可以时不要使用双精度型,可能情况下使用固定长度字符串而不要使用可变长度字符串。
3. 使用字符串变量以节省堆栈空间
字符串变量是代码中最常用的一种数据类型,它们可以被分解成三种类型:
. 局部固定长度(长度不超过64个字符)——这些字符串每个字符仅用两个字节,而且不使用堆空间。
.
局部固定长度(长度超过65个字符)——这些字符串每个字符仍然使用两个字节,但是在堆内存中。同时,它们还要求堆栈中的四个字节来指向堆中的变量。
.局部可变量长度(长度一限)——堆空间的数量依存字符串长度而定。四字节的堆栈内存被用指向堆中变量的指针。
在处理字符串时,目标就应该是减少正在使用的堆栈内存。尝试着把字符串转换成局部可变长度或静态固定长度字符串。下面的代码段举说明为了节省堆栈内存而把内存而把可变长度字符串重新声明为静态固定长度字符串。
Dim strstring as string
Static strstring as string*30
提示:用表的字段大小来决定固定宽度文本字符串的长度
4.特写的对象类型声明
在声明对象变量时要精确。如果代码将要运行经过窗体的文本框控件,声明对象变量为文本框,而不要仅仅声明为控件。这样,VBA不必确定到底说的是哪种控件。例如:可以用
Sub CycleControls (cntl as TextBox)
代替
Sub CycleControls (cntl as control)
来节省运行时间。
5.切换True 和 False
在把一个标志位从True 翻转到 False
时,没有必要用一个IF…Then…Else结构来完成检查值标志的任务。可以用NOT操作符把值翻转,从而节省时间和代码。通过设定一个布尔变量为该变量的非,就可以翻转它。
可以用
bFlag=Not bFlag
代替
If bFlag=False then
bFlag=True
Else
bFlag=False
End IF
运行一行代码比运行几行计算要节省许多时间。
6.用Len()的函数代替空字符串
为了测试一个字符串变量中是否含有字符,应该使用Len函数而不是把字符串变量和空字符串(””
“”)进行比较。用Len计算比将变量和空字符串进行比较更快。
Sub CheckString (strString as string)
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)