【问题标题】:Excel VBA - Call macro to clear status bar after a few secondsExcel VBA - 几秒钟后调用宏以清除状态栏
【发布时间】:2016-11-04 05:12:47
【问题描述】:

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

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

但是,我想要做的是让我原来的宏结束,这样说:

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”,同时仍然允许用户访问程序?

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

【问题讨论】:

  • 转到 MSDN 并查找 Application.OnTime

标签: vba excel


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多