Pausing/Resuming Excel VBA 中的循环(点击)

Pausing/Resuming a Loop in Excel VBA (on Click)

因此,我正在使用相当大的 Excel sheet。我已经创建了很多功能,因为它相当复杂。当我告诉它执行时,它需要很长时间。我创建了一个计时器,告诉人们它已经进入了这个过程(如图所示):

现在。我非常想做一个暂停按钮。我试过:

Private Sub PauseButton_Click()
Application.Wait Now() + TimeValue("00:00:20")
End Sub

这实际上暂停了进程。我最初的想法是输入一个非常大的数字,然后单击按钮继续。不幸的是,我无法恢复 (DoEvents) 该过程,因为 Excel 似乎在输入的时间段内完全冻结。

如果您对如何解决此问题有任何想法,我们将不胜感激。

好吧,考虑到我们没有表单代码的视图,您可以尝试声明一个 public 布尔值 b_pause,它会告诉您是否暂停。并写下这样的东西:

public b_pause as boolean

sub RunMe
    b_pause = True
    Do While b_pause
        DoEvents
    Loop
End sub

Sub StopMe()
    b_pause = False
End Sub