VBA宏更新单元格(a,b)=" = RTD(serv,title,source),然后继续使用接收值进行某些计算。问题是(1)我事前并不知道源是否存在,所以我必须猜测,(2)如果源确实存在,则该单元通常不会按时更新。 (3)简单地等待没有帮助。 (4)经常杀宏,但比我不得不求助于手动重启。 (5)使用
暂停宏运行Sub Break_And_Go()
Dim Brk As String
Dim Entr As String
Dim Esc As String
Brk = "{BREAK}"
Entr = "{ENTER}"
Esc = "{ESC}"
' use "send key to simulate manual stop and go"
Application.EnableCancelKey = xlDisabled
Application.SendKeys Esc, True
DoEvents
Application.Wait (Now + TimeValue("00:00:01"))
Application.rtd.RestartServers
Application.rtd.RefreshData
Application.SendKeys Entr, True
Application.Wait (Now + TimeValue("00:00:01"))
DoEvents
Application.EnableCancelKey = xlInterrupt
' Application.OnTime Now + TimeValue("00:00:05"), "Break_And_Go", False
End Sub ' Break_And_Go
以上并不可靠。特别是在多个细胞索引上的长循环中。有时所有单元格都会更新,有时候某些单元格会保留" N / A"有时候没有更新任何单元格。在视觉上对源进行检查时,通常存在差异:源存在,而更新失败。
答案 0 :(得分:0)
对我来说,设置Application.EnableCancelKey = value不再有效,而以前也是如此。对你起作用吗?这也可能是你的错误
您的application.calculation状态如何? 这是一个重复的问题吗?尝试application.ScreenUpdating = true然后为false