暂停VBA循环以允许编辑工作表,可以使用或不使用用户窗体

我有一个由几个dofor循环组成的过程,我想find一个简单的方法来暂停例程,并允许用户编辑工作表,与一个msgbox或用户表单恢复执行的地方离开。

我想做这样的事情

 dim pause as boolean pause=false For i = 1 To 40 Worksheets("sheet1").Range("A" & i) = i If i = 20 Then UserForm1.Show vbmodeless Pause = true Do until pause = false loop Else End If Next i End Sub 

其中,暂停条件将由用户窗体上的一个子设置。 这个循环只是崩溃。

理想情况下,我希望用户窗体具有可以运行子button的button,但是也可以在执行暂停时直接编辑单元格。

这是一个典型的控制结构,允许用户在macros中间执行一些操作。 当用户完成时,他们运行OKToContinue以允许macros继续第二部分:

 Dim AllowedToContinue As Boolean Sub FirstPartSecondPart() AllowedToContinue = False MsgBox "allow user to perform actions" Do Until AllowedToContinue DoEvents Loop MsgBox "doing second part" End Sub Sub OKToContinuw() AllowedToContinue = True End Sub