Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:中断代码执行(不是通过点击';转义';)_Excel_Vba - Fatal编程技术网

Excel VBA:中断代码执行(不是通过点击';转义';)

Excel VBA:中断代码执行(不是通过点击';转义';),excel,vba,Excel,Vba,我有一件事要做。。While循环,其中两个用于。。循环是嵌套的;第一个是。。循环从1向上计数到X,第二个循环从X向下计数到1。这一点目前被无限重复 现在,我希望用户能够“中断”这个无限循环,程序在循环中断时执行XYZ 我试过将切换按钮与Do结合使用。。While循环,但在前面提到的循环运行时,不接受任何输入。如果代码正在运行循环,则单击按钮时按钮的状态不会更改 非常感谢您的任何建议 关键是在循环中包含一个DoEvents。这允许Excel在运行代码时处理按钮单击之类的操作 这是一个提纲。分配宏按

我有一件事要做。。While循环,其中两个用于。。循环是嵌套的;第一个是。。循环从1向上计数到X,第二个循环从X向下计数到1。这一点目前被无限重复

现在,我希望用户能够“中断”这个无限循环,程序在循环中断时执行XYZ

我试过将切换按钮与Do结合使用。。While循环,但在前面提到的循环运行时,不接受任何输入。如果代码正在运行循环,则单击按钮时按钮的状态不会更改


非常感谢您的任何建议

关键是在循环中包含一个
DoEvents
。这允许Excel在运行代码时处理按钮单击之类的操作

这是一个提纲。分配宏
按钮单击按钮
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