gpt4 book ai didi

Excel VBA : interrupt code execution (not by hitting 'escape' )

转载 作者:行者123 更新时间:2023-12-02 04:18:16 25 4
gpt4 key购买 nike

我有一个 Do .. While 循环,其中嵌套了两个 For.. 循环;第一个 For.. 循环从 1 向上计数到 X,第二个循环从 X 向下计数到 1。目前,这是无限重复的。

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

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

任何建议都将受到高度赞赏。

最佳答案

关键是在循环中包含 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

关于Excel VBA : interrupt code execution (not by hitting 'escape' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9580330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com