如果运行时过长,Excel VBA将跳过代码行
我需要一个方法来跳过一行代码,如果它需要太长的时间来运行。这是一行,任何代码。例如,此行:如果运行时过长,Excel VBA将跳过代码行,vba,excel,Vba,Excel,我需要一个方法来跳过一行代码,如果它需要太长的时间来运行。这是一行,任何代码。例如,此行: managerAlias = recip.AddressEntry.GetExchangeUser.GetExchangeUserManager.Alias 如果数据可从outlook server获得,则需要0.2秒。但数据不可用,需要较长时间>30秒。我在“错误恢复下一步”中使用,但必须等待错误发生。因此,一般的问题是,如果一行代码的执行时间超过5秒,如何跳过该行?您可以在循环中设置该代码,以便在经
managerAlias = recip.AddressEntry.GetExchangeUser.GetExchangeUserManager.Alias
如果数据可从outlook server获得,则需要0.2秒。但数据不可用,需要较长时间>30秒。我在“错误恢复下一步”中使用,但必须等待错误发生。因此,一般的问题是,如果一行代码的执行时间超过5秒,如何跳过该行?您可以在循环中设置该代码,以便在经过特定时间后跳过该代码 没有测试,但是
myTime = now() + timevalue("00:00:03")
Do while managerAlias = null AND mytime < now()
managerAlias = recip.AddressEntry.GetExchangeUser.GetExchangeUserManager.Alias
loop
myTime=now()+timevalue(“00:00:03”)
当managerAlias=null和mytime
如果需要小于一秒的时间,请将时间值乘以小于1(Timevalue(“00:00:01”)*0.2)不幸的是,这在VBA中是不可能的。由于你的问题本质上是要求社区为你提供代码,而不是用你的代码解决一个特定的编码问题,因此我投票将其关闭,认为它离题/太宽泛(因为解释一个可行的解决方案需要一篇完整的博客文章)。不要关闭此对话框。以前有人问过它是否有其他代码行会阻止执行太长时间,而且不容易执行(如果可能的话)。我怀疑某个解决方案可能会将Application.EnableCancelKey=xlErrorHandler与Application.OnTime.等组合使用,但这并不能解决问题。问题是,调用别名functon 1次可能需要30秒,该函数才会抛出超时错误