VBA编程时常用的提速方法作者:网络 | 来源:网络转摘 | 时间:2008-05-07 | 阅读权限:游客 | 会员币:0 | 【大 中 小】 一、让代码"专注"运行 二、单元格(区域)写法的选择 三种写法各有优缺点,但以取值速度论,cells(1,1)最快,[A1]写法最慢,Range("A1")比cells(1,1)稍慢,但优点是在VBE中输入可以显示属性方法等快速输入信息.此外,要明示对象属性而不要依赖于对象的默认属性,这是一种好的编程习惯.下面两句,第二句要比第一句快得多: 三、比较语句 1.分解IF语句 优于 IF A AND B THEN 与 2.并列的条件使用elseif或select,elseif写起来麻烦,但速度优于select 3.将最可能的条件及容易计算的条件放在前面 上面分解后的A应当比B出现的机会更大,或者需要进行计算更容易计算出结果,select语句放在前面的case也应这样 4.Iif速度慢于if/else 四、循环语句 1.For 语句快于DO/WHILE,这是因为FOR语句的增量部分是VBA自带的,特别是步长为1的更明显 2.For/each快于for/to 五、使用With语句 with语句不仅仅是简化了写法,速度也大大提升了。 六、尽量不用Variant类型 这不用多说吧,使用Option Explicit是一个好习惯。 给返回值一个明确的类型,会对提速有好处。虽然有时候我们觉得不明显,这是很多人使用left$,而不用left,使用int%,而不用int的原因(你是否对这种写法好奇过?)。但如果你一开始你就没有DIM,这就很有必要了。 七、关注内存 对占用内存较多的对象变量,不要时要记住set=nothing,如果你对你的机器内存的容量没有信心,应避免使用递归程序,递归的过程会吃掉大量的内存。 八、使用工作表函数(方法) 有些工作表函数(方法)速度是很快的,比如FIND,VLOOKUP等,要记得使用它们,不要花力气去做不讨好的事。当使用工作表函数时,操作对象应避免使用内存变量,那样反而慢。 九、划零为整 1.内存变量的运算速度大大快于RANGE对象。 Dim arr() 2)将内存数组数据写入RANGE。在内存数组经过计算处理后,写回时只需下句就可以了。 range(“A1:F65536”)= arr 2.非数组变量快于数组变量。当数组很大时,根据下标提取数值会比从单个变量慢得多,这时可以把需要多 次使用的数组值先赋给内存变量。 3.减少使用REDIM的次数。REDIM是对数组操作中最费时的动作。可以先预算大小,不够或多余时再进行调整。 转载请注明:本文来自:Excel吧 (www.) 详细出处参考:http://www./Art/Html/264.html |
|