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

xesrikrc  于 2023-06-25  发布在  其他
关注(0)|答案(2)|浏览(172)

我有代码,我已经添加了一个错误框,弹出基于某些条件。条件是:

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

当错误框弹出时,有两个选项我希望我已经添加了按钮:
1.继续:无论Q列中是否有数据,继续都将继续执行宏

  1. Stop:Stop将结束宏,这样用户就可以将数据输入到列Q中并重新运行宏
    我也希望它,以便当错误帧弹出,代码暂停,并没有继续,直到用户选择其中一个选项。
    有人能给予我举个例子说明这是如何工作的吗?我不知道该怎么写。任何帮助是非常感谢,谢谢!
uxh89sit

uxh89sit1#

我自己想出来的:

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循环。
也许不是最有效的方法,我敢肯定,但让我知道你们的想法,如果有一个更好的方法来做到这一点。

2ul0zpep

2ul0zpep2#

如果您尝试调出一个表单,语法应该如下:
frmMyForm.Show vbModal
vbModal允许它暂停当前程序并移动到显示的表单。

相关问题