Excel VBA – 几秒钟后调用macros来清除状态栏

我试图找出是否有一种方法来调用macros来清除状态栏后执行一个不同的macros。 我意识到我可以简单地使用:

Application.Wait(Now + TimeValue("00:00:05")) Application.StatusBar = False 

不过,我想要做的是让我原来的macros观结束,说一些:

 Application.StatusBar = "Macro Function Complete." Call clearStatusBar End Sub Sub clearStatusBar() 'I do not want the application.wait here because it locks up the excel program. Application.Wait(Now + TimeValue("00:00:05")) Application.StatusBar = False End Sub 

有没有办法延缓“Application.StatusBar = False”,同时仍然允许用户访问该程序?

让我知道如果你需要更清晰。 谢谢你的帮助。

在这里输入图像说明

 Sub TestClearStatusBar() Application.StatusBar = "Testing: ClearStatusBar" ClearStatusBar End Sub Sub ClearStatusBar(Optional ClearStatusBar As Boolean) If ClearStatusBar Then Application.StatusBar = False MsgBox "Cleared" Else Application.OnTime Now + TimeValue("00:00:05"), "'ClearStatusBar True'" End If End Sub 

Sorceri能够为我的要求提供正确的方法。 通过使用Application.OnTime方法,您可以在不占用程序的情况下延迟调用macros。

 Application.StatusBar = "Macro Function Complete." Application.OnTime Now + TimeValue("00:00:07"), "clearStatusBar" End Sub Sub clearStatusBar() Application.StatusBar = False End Sub