Excel VBA - 几秒钟后调用宏来清除状态栏

Cit*_*naf 3 excel vba

我想弄清楚是否有一种方法可以调用宏来在执行不同的宏后清除状态栏。我意识到我可以简单地使用:

Application.Wait(Now + TimeValue("00:00:05"))
Application.StatusBar = False
Run Code Online (Sandbox Code Playgroud)

然而,我想做的是让我原来的宏结束,说:

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
Run Code Online (Sandbox Code Playgroud)

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

如果您需要更清晰的信息,请告诉我。感谢您的帮助。

小智 7

在此输入图像描述

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
Run Code Online (Sandbox Code Playgroud)