EP01. “StatusBar Property 状态栏进度提示”
🔒 登录后可标记已读Application.StatusBar能把文字显示在 Excel 窗口最下方的状态栏- 常用来在宏跑很久的时候,让使用者知道目前进度到哪、还没当机
- 用一个填充随机数字的例子示范怎么显示百分比进度
- 前置知识:嵌套 For 循环的基本用法
重点内容
适用版本
桌面版通用(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在状态栏显示自定义文字 - ✅ 算出目前进度换算成百分比,实时更新状态栏内容
- ✅ 知道循环结束后要把
Application.StatusBar设回False恢复正常显示
常见错误
- 循环结束后忘记把
Application.StatusBar设回False,状态栏卡住不会恢复正常 - 把
Application.Wait这行也照抄到正式代码里,导致宏运行速度被不必要地拖慢 - 百分比公式算错,状态栏显示的进度跟实际跑的进度对不上
Sources
Blog / Website: