Microsoft Lab
全部软件
Excel应用程序对象(Application Object)约 4 分钟

StatusBar Property 状态栏进度提示

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


完整代码

Dim i As Integer, j As Integer, pctCompl As Integer

For i = 1 To 20
    For j = 1 To 5
        Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
        pctCompl = (i - 1) * 5 + (j * 1)
        Application.StatusBar = "Importing Data.. " & pctCompl & "% Completed"
        Application.Wait Now + TimeValue("00:00:01")
    Next j
Next i

Application.StatusBar = False

逻辑说明

  • 用嵌套循环把 A1:E20 填满 20 到 100 之间的随机数字
  • pctCompl 算出目前跑到第几格,换算成百分比
  • Application.StatusBar = "..." 把这个百分比文字显示在状态栏
📷 画面提示

宏运行过程中 Excel 窗口最左下角状态栏显示 "Importing Data.. 42% Completed" 这类进度文字

  • Application.Wait 让每一步暂停 1 秒,方便观察进度变化(实际用在真正耗时的操作时不需要这行)
  • 📌 循环跑完后,一定要把 Application.StatusBar 设回 False,让状态栏恢复正常显示,不然会一直卡在最后一次的进度文字

学完你会

常见错误

  • 循环结束后忘记把 Application.StatusBar 设回 False,状态栏卡住不会恢复正常
  • 把 Application.Wait 这行也照抄到正式代码里,导致宏运行速度被不必要地拖慢
  • 百分比公式算错,状态栏显示的进度跟实际跑的进度对不上

Sources

Blog / Website:

  1. StatusBar
只记在你的浏览器里,换设备不会同步。