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

时间:2016-05-31 10:13:23

标签: excel vba show userform commandbutton

在这里和谷歌中找到了一些提示,但无法正确实施。

假设我有一个循环运行,我需要显示一个带有按钮的框"取消"。 代码必须运行直到我按下按钮。 在下面的示例中,我使用 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

此代码运行,但它不会对Button click做出反应。 如果我 UserForm1.Show vbModal ,则代码停止并等待,直到我单击按钮。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

这是我的代码,当使用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会让您的应用无响应