在执行需要长时间运行的宏代码时,用户的某些操作可能会影响代码的执行,导致代码不能实现预期的目标。
示例:不能阻止用户干预宏代码的运行
以下示例在活动单元格输入数值,如果在运行示例代码时,用户在工作表中选择其他单元格将会导致代码不能实现预期的目标。
Sub DataInput()
Dim i As Long
For i = 1 To 10000
DoEvents
ActiveCell.Value = i
Next i
End Sub
示例:阻止用户干预宏代码的运行
要避免代码在运行过程中受到影响,可以修改 Application 对象的 Interactive 属性,阻止键盘和鼠标的所有输入操作。
以下示例将 Application 对象的 Interactive 属性值设置为 False
,使应用程序处于非交互模式,避免用户操作影响宏代码的执行。如果将该属性设为 False
,记得程序运行结束后要将它设回 True
。当宏停止运行时,Excel 不会自动将此属性设置为 True
。
Sub DataInputInteractive()
Dim i As Long
Application.Interactive = False
For i = 1 To 10000
DoEvents
ActiveCell.Value = i
Next i
Application.Interactive = True
End Sub