我有一个Do .. While循环,其中两个For ..循环嵌套;第一个For ..循环从1到X计数,第二个循环从X向下计数到1.这是目前无限重复的。
现在,我希望用户能够“中断”这个无限循环,并且程序在循环中断时执行XYZ。
我尝试使用切换按钮与Do .. While循环组合,但在上述循环运行时,不接受任何输入。如果代码正在运行循环,则单击时按钮的状态不会更改。
任何建议都非常感谢。
答案 0 :(得分:10)
关键是在循环中包含DoEvents
。这允许Excel在运行代码时处理诸如按钮单击之类的内容
这是一个大纲。将宏ButtonClick
指定给按钮。 Main
将无限期地运行,直到单击该按钮。
Option Explicit
Dim bBreak As Boolean
Sub ButtonClick()
bBreak = True
End Sub
Sub Main()
Dim X As Long
Dim i As Long
bBreak = False
Do While True
X = 1000
For i = 1 To X
If bBreak Then
Exit Do
End If
DoEvents
Next
For i = X To 1 Step -1
If bBreak Then
Exit Do
End If
DoEvents
Next
Loop
If bBreak Then XYZ
End Sub