在Excel上的VBA中,我有一个遍历数千个单元格的循环,这需要几分钟的时间。
是否可以中止一个长期循环(如果可以,如何终止)/我可以构建一个按钮或类似的东西来手动中断这个循环吗?
构建一个按钮并用宏覆盖它不是问题,只是代码本身的问题。
发布于 2010-07-19 17:41:19
当Excel忙于执行宏时,它不会响应按钮。
这里有三个选项:
Application.ScreenUpdating设置为False会有所帮助)DoEvents来使宏变慢。这样,Excel将同时响应于按钮。这个按钮将要触发的宏只会将一个全局变量设置为True (显然,您的内部循环应该在每次迭代时检查这个变量,如果它为True).,则退出
发布于 2010-07-19 17:41:04
Application.EnableCancelKey可能就是你要找的东西。
参见链接的url上的示例代码,当用户按下换行键时,将控件传递给错误处理程序。
发布于 2014-07-02 22:43:24
除了其他答案之外,
假设您想要中断代码,但仍然在代码中执行某些操作,您可以通过捕获中断并处理它来实现
您可以使用Err.Number捕获错误号
具体地说,Err.Number = 18表示用户中断
Sub handleError()
On Error GoTo MyErrorHandler
Application.EnableCancelKey = xlErrorHandler
'Just an example to show something is running
For i = 0 To 900000
Range("A1") = i
Next i
MyErrorHandler:
If Err.Number = 18 Then '18 =User interrupt
MsgBox " You clicked Ctrl + Break "
Exit Sub
End If
End Subhttps://stackoverflow.com/questions/3279826
复制相似问题