首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA:中断代码执行(不是通过按“escape”)

Excel VBA:中断代码执行(不是通过按“escape”)
EN

Stack Overflow用户
提问于 2012-03-06 16:39:37
回答 1查看 7.3K关注 0票数 6

我有一个Do ..。While循环中的哪两个For..循环是嵌套的;第一个For..循环从1递增到X,第二个循环从X递减到1。这是当前无限重复的。

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

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

我们非常感谢您的任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-06 17:05:25

关键是在循环中包含一个DoEvents。这允许Excel在运行代码时处理像单击按钮这样的事情

这是一个提纲。将宏ButtonClick分配给按钮。Main将无限期运行,直到单击该按钮。

代码语言:javascript
复制
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
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9580330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档