|
|

楼主 |
发表于 2012-9-1 10:33
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 yiyiyicz 于 2012-9-1 10:55 编辑
这些是最基本的东西,最基本的东西也是常常被忽略,或者没能掌握要义而影响灵活深入的应用VBA
坦率讲,当初发这些东西是为了自己查找方便,多少也是为了赚点积分;而且当时还有很多不懂的。没想到这么多人浏览过此贴。真怕把人带沟里去。做些补充,略表歉意。
(1) Option Explicit '强制对模块内所有变量进行声明
写上Option Explicit,就必须在之后的代码中声明所有的变量
【例】
Sub t()
For i = 1 To 10
temp = temp + i
Next
End Sub
在没有写上Option Explicit时,这段代码可以运行
但是写上后,这段代码将报错:“编译错误,变量未定义”。也就是说,这时VBA的编译器强行要求声明变量。
【例】
Option Explicit
Sub t()
Dim i As Integer, temp As Integer
For i = 1 To 10
temp = temp + i
Next
End Sub
写上Option Explicit后,就必须添加Dim i As Integer, temp As Integer。这样代码运行就正常了
个人体会,随着对VBA的应用更加深入,特别是使用了模块、类模块,Option Explicit如何影响代码运行,就会有更加深认识
原则上:
使用Option Explicit的理由是:
(1)显式声明是好习惯;
(2)防出错,对于大型程序特别明显;
(3)可以减少资源的占用,一个Integer肯定比 Variant 节省资源的占用
(2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息
这也是一个重要的东西,灵活掌握并不容易
EH论坛中有专门的帖子,详细叙述并讨论过
(6) Application.ScreenUpdating=False '关闭屏幕刷新
Application.ScreenUpdating=True '打开屏幕刷新
在编程中,常用这个函数。减少刷新,是减少操作sheet的时间
但要注意,使用这个函数,将会增加代码的运行时间
|
|