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
会使您的应用无响应
在此处和 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
会使您的应用无响应