我有一个在电子表格中被调用超过1000次的函数(从数据库查找价格)偶尔会在数据库不可用的环境中打开电子表格。当发生这种情况时,我有错误代码来处理它,这会推送一个消息框。强制Excel在功能错误后停止计算
我想要一种方法来停止Excel计算,如果第一个失败,所以事情可以修复。我会弹出一个消息框,提供停止计算的选项。
有没有办法做到这一点?截至目前,它基本上弹出消息框1000次,并且很多时间Ctrl + 中断(某些键盘甚至没有中断键)或Esc不会停止运行,因为它太快了以获得突破...
ErrorHandler:
' clean up
If Not rst1 Is Nothing Then
If rst1.State = adStateOpen Then rst1.Close
End If
Set rst1 = Nothing
If Not Con1 Is Nothing Then
If Con1.State = adStateOpen Then Con1.Close
End If
Set Con1 = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Function
这不会做任何事来阻止Excel中的计算......并且除了列出的代码之外确实没有做任何其他事情。退出该功能不会停止宏或停止计算。 – OneTallShort 2013-05-03 01:34:11
@OneTallShort它还会弹出消息框1000次吗? – Santosh 2013-05-03 01:37:40
当然,因为该函数被称为从电子表格1000次...不循环1000次..这被定义为一个函数,而不是一个宏子程序。它叫做= GetPrice(A1,C1,D1),所以当excel计算时,它试图更新电子表格中每个函数的实例。 – OneTallShort 2013-05-03 02:19:13