Excel VBA技巧:一招教你轻松添加状态栏进度条

admin 办公 2023-12-19 09:34 124

在 Excel 里用 VBA 处理进行一些操作,比如填充数据、改变单元格格式等时候,当数据比较大就需要给用户一些提示,防止用户以为程序处于卡死状态。

一般我们可以在 Excel 的状态栏显示一些提示信息,如 “正在处理中...” 等来提示用户。其实这种情况下我们最好可以显示一个进度条给用户,可以很直观的显示当前的进度。但在 Excel 状态栏添加进度条技术上比较麻烦(不是不可以实现),所以这里我就给大家提供一个取巧的办法,用特殊的字符模拟出一个任务栏进度条(具体代码见文末):

'此代码只适用于 Excel 2013 及以后版本Sub StatusBarProgressBar()    Dim I As Long, xProgress As Long    Dim xChar1 As String, xChar2 As String    Dim xTimer As Single    xChar1 = Application.WorksheetFunction.Unichar(9646)    xChar2 = Application.WorksheetFunction.Unichar(9647)    Application.StatusBar = ""    Application.StatusBar = "正在处理: " & String(10, xChar2) & "(00%)"    For I = 1 To 100000        Application.ActiveSheet.Cells(I, 1) = I        If ((I Mod 10000) = 0) Then            xProgress = xProgress + 1            Application.StatusBar = "正在处理: " & String(xProgress, xChar1) & String(10 - xProgress, xChar2) & Format(xProgress, "(&&0%)")            DoEvents        End If    Next    Application.StatusBar = "处理完成"    xTimer = Timer    While (Timer < (xTimer + 1))        DoEvents    Wend    Application.StatusBar = ""End Sub
相关推荐
关闭

用微信“扫一扫”