VBA Excel 运行 代码尽管 userform-window 然后停止按钮点击

VBA Excel Run code despite userform-window then stop on button click

在此处和 google 中找到了一些提示,但无法正确实施。

假设我有一个 运行 的循环,我需要显示一个带有按钮 "Cancel" 的框。 代码必须 运行 直到我按下按钮。 在下面的示例中,我使用了 For Loop 并在 Label1.Caption

中显示了迭代次数
' action of UserForm1 on Button Click
Private Sub CommandButton1_Click()
    cancel = True
End Sub

Public cancel as boolean

Sub example ()
    cancel = False
    Dim i As Integer

    For i = 1 To 1000
        Application.Wait (Now + #12:00:01 AM#)
        UserForm1.Label1.Caption = CStr(i)
        UserForm1.Show vbModeless
        If cancel = True Then
            Exit For
        End If
    Next i         
End Sub

此代码 运行s,但它对单击按钮没有反应。 如果我执行 UserForm1.Show vbModal,那么代码会停止并等待我单击按钮。 我做错了什么?

这是我的代码,当使用 frmTest.Show false

打开用户窗体时,它可以完美运行
Dim cancelbool As Boolean

Function loopfunction()

Dim i As Integer

i = 0

Do Until cancelbool
    DoEvents
    Me.lblIteration.Caption = i
    i = i + 1
Loop
End Function

Private Sub cmdCancel_Click()

cancelbool = True
End Sub

Private Sub UserForm_Activate()

loopfunction
End Sub

顺便说一下,Application.Wait 会使您的应用无响应