乐于分享
好东西不私藏

EXCEL VBA 常用语句-1

EXCEL VBA 常用语句-1

今天分享一下定制模块行为的常用语句

(1) Option Explicit

作用:强制对模块内所有变量进行声明,减少潜在的错误;

(2) Option Private Module

作用:标记模块为私有,仅对同一工程中的其他模块有用,在宏对话框中不显示。

Application.DisplayAlerts = False ' 屏蔽警告框Sub Example() MyFunction() ' 在宏对话框中看不到此子程序End SubFunction MyFunction() Option Private Module ' 模块私有,其他模块可见 Debug.Print "Private"End Function

(3) Option Compare Text

作用:字符串不区分大小写

Sub Example() Dim s1 As String, s2 As String s1 = "Apple" s2 = "apple" ' 比较不区分大小写If s1 = s2 Then 'OptionCompareText定义时视为相等,不区分大小写 Debug.Print "相等" else Debug.Print "不相等" 'optionComparetext未定义时,区分大小写。End IfEnd Sub

(4) Option Base 1

作用:指定数组的第一个下标为1。

Sub Example() Dim arr(1 To 3, 1 To 2) For i = 1 To 3 For j = 1 To 2 arr(i, j) = i * j Next j Debug.Print "第 " & i & " 行: " & arr(i, 1) & ", " & arr(i, 2) Next iend sub

(5) On Error Resume Next

作用:忽略错误继续执行VBA代码,避免出现错误消息

(6) On Error GoTo ErrorHandler

作用:当错误发生时跳转到过程中的某个位置

(7) On Error GoTo 0

作用:恢复正常的错误提示

(8) Application.DisplayAlerts=False/True

作用:在程序执行过程中隐藏警告框,当为True时,不隐藏警告框。

(9) Application.ScreenUpdating=False/True

作用:控制屏幕在程序运行中是否刷新。

Sub Example() Dim i As Integer Application.ScreenUpdating = False ' 关闭屏幕刷新 Application.DisplayAlerts = False For i = 1 To 5 Sleep 0.2 ' 模拟批量处理 Debug.Print "已处理第 " & i & " 个项目" Next i Application.ScreenUpdating = True ' 打开屏幕刷新 Application.DisplayAlerts = False WaitUntilUpdate '假设有一个自定义函数 end sub

(10) Application.Enable.CancelKey=xlDisabled

作用:禁用 Ctrl+Break 中止运行的功能。

Sub Example() Dim i As Integer Application rowLimit = 10 For i = 1 To 20 Sleep 0.2 If i > rowLimit Then Break End If Next i Application.EnableCancelableKey = xlDisabled ' 禁用 Ctrl+Breakend sub'当达到第10行时,Break会被启用(因为xlDisabled为默认值),程序继续运行

相关学习资料