防止用户停止宏(Excel VBA)

3
我希望防止用户在保存期间停止宏。我找到了以下代码:
Application.EnableCancelKey = xlDisabled

如果你只按一次ESC键,它可以工作,但是如果你长时间按住该键,你就可以停止宏。

我尝试了以下方法:Application.EnableCancelKey = xlErrorHandler

Application.EnableCancelKey = xlErrorHandler
On Error GoTo errHandler:

ActiveWorkbook.Save

exitHere:
  Exit Sub

errHandler:
  msgbox"something"
  Resume exitHere

有时它可以完美地工作,但有时如果我在恰当的时刻按下ESC键并保持几秒钟,我就能停止宏。
您知道是否有一种真正禁用ESC键的方法吗?

感谢Ariful Haque在如何编辑问题方面提供的帮助。 - H. Dave
1个回答

0

我从未这样做过,但这是我从你的代码开始的方式:

On Error GoTo errHandler:
Application.EnableCancelKey = xlErrorHandler

ActiveWorkbook.Save

Application.EnableCancelKey = xlInterrupt

exitHere:
  Exit Sub


errHandler:
  If MsgBox("something", vbOKCancel) = vbCancel Then
    Application.EnableCancelKey = xlInterrupt
    Exit Sub
  End If

  Resume

感谢您的评论。 errHandler 起作用了,但有时在 errHandler 的第一行出现错误(在这种情况下,如果 msgBox...)。看起来我需要一个错误处理程序来处理我的错误处理程序!! - H. Dave

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接