我在Excel中有一个脚本,有时可能会运行太长时间。 我需要一个简单的方法让用户中断。
现在解决方案是按[esc]键而不是[end]按钮。
我想知道是否有可能摆脱这个弹出窗口
类似于:如果按下[esc]而不是简单的End
(停止所有脚本)就可以了。
我也接受mrbungle的解决方案,因为在他的链接中我找到了一个解决方案,通过按[esc]来停止脚本而没有错误消息。谢谢你的回答。
工作代码。
Option Explicit
Dim StopCode As Boolean 'Global bool
Sub mysub_Click()
Dim c As Range
Dim p As String
Dim lastonline As Object
Dim x: Dim y
Dim actives As String
Dim timeoutc As Variant
actives = ActiveSheet.Name
timeoutc = 0
StopCode = False
Application.EnableCancelKey = xlErrorHandler
On Error GoTo ErrH:
DoEvents
For Each c In Sheets(actives).UsedRange.Cells
If StopCode = True Then
Exit For
End If
{The code} 'I have deleted it so it is less confusing now
next c
ErrH:
If Err.Number = 18 Then
Debug.Print "break key hit"
Else
Debug.Print "other error: "; Err.Number, Err.Description
End If
End Sub
用户形式
Option Explicit
Dim StopCode As Boolean 'Global bool
Private Sub CommandButton1_Click() 'close button
PTimeout.Hide
End Sub
Private Sub CommandButton2_Click() 'stop script button (does not work)
StopCode = True
PTimeout.Hide
End Sub
答案 0 :(得分:2)
Chip Pearson有一个很好的解决方案here我认为可以解决你的问题。如果有问题,我会简单解释一下。这将在您的代码和相关工作表中,您将创建一个命令按钮并分配另一个将StopCode设置为True的子。当用户单击该按钮时,StopCode将设置为True,代码将停止运行。
StopCode = False
Do Until StopCode = True
DoEvents
' your code here. next line is just an example