Excel 代码给用户使用,如何避免用户中断代码运行导致结果错误?

前言:在我们完成给用户给的需求,即我们给用户开发的特殊定制的程序,为了因用户的误操作导致程序运行中断,进而影响程序的运行结果,我们需要给用户屏蔽这个取消的选择 。
一般出现这个情况是用户在代码运行期间按下了键或者组合键,会显示如下所示的消息框 。相信这个对话框你我并不陌生 , 因为在调试代码的过程中,经常会遇到这个 。

Excel 代码给用户使用,如何避免用户中断代码运行导致结果错误?

但是假如我们此时选择点击“继续”按钮将继续执行代码,或者点击“结束”按钮结束过程,点击“调试”按钮进入中断模式,这显然不是应该给我们的用户看到的选择题,我们需要屏蔽掉取消或者调试按键 。那么有没一种办法可以解决这个困难呢?
Excel 代码给用户使用,如何避免用户中断代码运行导致结果错误?

其实我们的程序Application对象中有此属性来控制这个,他就是我们的Application对象的EnableCancelKey属性来进行控制,即核心代码Application.EnableCancelKey = xlDisabled,xlDisabled表示禁用 。我们举一个代码的栗子呀,如下代码所示:
Excel 代码给用户使用,如何避免用户中断代码运行导致结果错误?

在次代码运行的过程中,我们按Esc或者组合键是没有效果的 。如果我们在开发好的程序时候 , 可以加上这句代码即可完成 。顺带说下这格语句的使用方法:
Application对象的EnableCancelKey属性控制将用户中断用于运行程序的处理,语法如下:expression.EnableCancelKey , 参数是expression必需的,Application对象 。
【Excel 代码给用户使用,如何避免用户中断代码运行导致结果错误?】EnableCancelKey属性值为如下所示的XlEnableCancelKey常量之一,他既可以用英文表述,也可以用常量表述:他的值有3个,我们按需选择即可 。
Excel 代码给用户使用,如何避免用户中断代码运行导致结果错误?

需要特别注意的一点是,只要Excel VBA返回空闲状态并且没有程序处于运行状态 , EnableCancelKey属性都会重置为xlInterrupt 。若要在运行中禁用取消过程,需要我们在程序被调用时必须明确更改EnableCancelKey属性,也就是说我们需要在我们禁止的时候 , 提前强制更改即可 。
Excel 代码给用户使用,如何避免用户中断代码运行导致结果错误?

以上就是我们今天和大家说的如何禁止用户在执行过程中取消代码运行的小技巧 。
每天都会分享一个小小的知识点,关注我,让你每天都进步一大步 。
Excel 代码给用户使用,如何避免用户中断代码运行导致结果错误?

如果有不明白的或者不懂的可以在下方留言 , 我们会一一解答的 。
我是Excel教案,关注我持续分享更多的Excel技巧!

相关经验推荐