在这里和谷歌中找到了一些提示,但无法正确实施。
假设我有一个循环运行,我需要显示一个带有按钮的框"取消"。 代码必须运行直到我按下按钮。 在下面的示例中,我使用 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 ,则代码停止并等待,直到我单击按钮。 我做错了什么?
答案 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
会让您的应用无响应