我正在尝试运行一个VBA宏,该宏每秒都会更新get http响应的http响应。
当宏正在运行并切换到另一个程序(例如Chrome)时,Excel窗口(有时与它一起使用的VBA编辑器)会在几秒钟后弹出并停留在上面。
我看到了其他建议使用Application.screenupdating = false
的帖子,但在我的情况下它不起作用。我正在使用Mac,如果相关。
有关您的信息,我正在运行两个subs-第一个用于获取HTTP响应字符串,然后致电第二个子,第二个Sub使用Application.onTime
来计算何时再次执行第一个子。
我只希望宏在背景中运行其他任务。
更新
似乎应用程序命令正在窃取焦点。我试图将以下子作为测试运行,并复制了我一直存在的问题。
Sub test()
Application.OnTime Now + 0.01157407 / 1000, "test"
'0.01157407/1000 = 1 second
End Sub
我不确定如何测试您的问题,因为我从未遇到过它。而且我不能简单地提出建议对您的帖子发表评论。但是,使用以下子应该禁用Excel的大多数更新,事件和警报。
确实指出,在启用启用时,用户将无法使用Excel,因此需要在计算后禁用。
Public Sub FastApplication(Optional ByVal opt As Boolean = True)
With Application
.Calculation = IIf(opt, xlCalculationManual, xlCalculationAutomatic)
.DisplayAlerts = Not opt
.DisplayStatusBar = Not opt
.EnableAnimations = Not opt
.EnableEvents = Not opt
.ScreenUpdating = Not opt
End With
End Sub