VBA暂停代码并等待用户交互

时间:2014-08-13 13:15:21

标签: vba excel-vba excel

我有代码,我添加了一个根据特定条件弹出的错误框。条件是:

If Range (Q2:Q) = "" Then
ErrorFrame.Visible = True

当弹出错误框架时,我想要的两个选项是我添加了按钮:

  1. 继续: 无论Q列

  2. 中是否有数据,继续都将继续宏
  3. 停止: 停止将结束宏,以便用户可以将数据输入到列Q中并重新运行宏

  4. 我也希望这样,当错误框架弹出时,代码会暂停,并且在用户选择其中一个选项之前不会继续。

    有人能给我一个如何运作的例子吗?我在思考如何写这篇文章时遇到了麻烦。非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

自己想出来:

If WorksheetFunction.CountA(Range("Q:Q")) = 0 Then
UserForm1.ErrorFrame.Visible = True
    Do While UserForm1.ErrorFrame.Visible = True
    DoEvents
    Loop
    If ContinueFlag = True Then GoTo Line1
End If

Line1:

基本上对于继续按钮我只是在其上添加了一个标志,所以当点击它时会使标志成立。然后在函数中,当标志为true时,它将转到第1行,然后继续执行代码并退出Do While循环。

可能不是最有效的方式,我确定,但让我知道你们的想法以及是否有更好的方法。