VBA Excel尽pipeuserform窗口运行代码然后停止button单击
在这里和谷歌发现一些提示,但不能正确实施。
说我有一个循环运行,我需要显示一个button“取消”的框。 代码必须运行,直到我按下button。 在下面的例子中,我使用了For循环,并在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点击作出反应。 如果我做UserForm1.Show vbModal ,然后代码停止并等待,直到我点击button。 我做错了什么?
这是我的代码,当用户frmTest.Show false
打开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
会使您的应用程序无法响应