跳到主要内容

阻止用户干预宏代码的运行

在执行需要长时间运行的宏代码时,用户的某些操作可能会影响代码的执行,导致代码不能实现预期的目标。

示例:不能阻止用户干预宏代码的运行

以下示例在活动单元格输入数值,如果在运行示例代码时,用户在工作表中选择其他单元格将会导致代码不能实现预期的目标。

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

 

评论

您的电子邮件地址不会显示出来。*号为必填项。