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

VBA暂停代码并等待用户交互,vba,excel,Vba,Excel,我在代码中添加了一个基于特定条件弹出的错误框。条件是: If Range (Q2:Q) = "" Then ErrorFrame.Visible = True 当错误框弹出时,有两个选项需要添加按钮: 继续: 无论Q列中是否有数据,“继续”将继续执行宏 停止: Stop将结束宏,以便用户可以将数据输入到Q列并重新运行宏 我还希望这样,当错误帧弹出时,代码暂停,直到用户选择其中一个选项后才继续 有人能给我举个例子说明这是如何工作的吗?我想不起怎么写这个。非常感谢您的帮助,谢谢 我自己想出来了:

我在代码中添加了一个基于特定条件弹出的错误框。条件是:

If Range (Q2:Q) = "" Then
ErrorFrame.Visible = True
当错误框弹出时,有两个选项需要添加按钮:

  • 继续: 无论Q列中是否有数据,“继续”将继续执行宏

  • 停止: Stop将结束宏,以便用户可以将数据输入到Q列并重新运行宏

  • 我还希望这样,当错误帧弹出时,代码暂停,直到用户选择其中一个选项后才继续

    有人能给我举个例子说明这是如何工作的吗?我想不起怎么写这个。非常感谢您的帮助,谢谢

    我自己想出来了:

    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:
    
    基本上,对于continue按钮,我只是在它上面添加了一个标志,所以当单击它时,它会使标志为真。然后在函数中,如您所见,当标志为true时,它将转到第1行,然后继续代码并退出
    Do While
    循环


    我相信这可能不是最有效的方法,但请告诉我你们的想法,以及是否有更好的方法。

    什么是
    ErrorFrame
    ?如果它是一个用户表单,请确保您
    .Show
    ErrorFrame.Show vbModal
    一样显示它;这将把它当作一个对话框,在窗体关闭之前,主子窗体中的执行将不会继续。您可能会使用错误框的内置函数。它还将等待用户的输入,因此它会执行您需要的所有操作。如果Q列为空,则弹出。我可以使用msgbox,但如果可能的话,我真的很想这样做。我已经得到了错误框弹出,如果我点击“停止”它终止程序,现在我只需要找出如何继续子,如果点击“继续”。有什么想法吗?