我在宏中使用'Worksheet_Change'事件,每次用戶在下拉菜單中選擇一個選項時,都需要大約15-20秒的時間才能運行,因爲訪問的數據範圍較大。我想在Excel中顯示非常基本的%完成狀態,讓用戶知道它正在處理中。使用默認的Excel Application.StatusBar就足夠了,但它在我的工作簿中不可見。運行Excel宏時顯示完成百分比
我的工作隱藏/顯示列宏:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R, V
If Target.Address = ("$K$7") Then
V = [K7].Value
For Each R In Range("R3:GJU3")
If IsError(R.Value) Then
R.EntireColumn.Hidden = True
Else
R.EntireColumn.Hidden = R.Value <> V
End If
Next
End If
End Sub
我發現下面的代碼放在一個單獨的線程,但我不確定如何爲基於我以上的宏我的目的,修改。
代碼下面信貸在Progress bar in VBA Excel
Option Explicit
Sub StatusBar()
Dim x As Integer
Dim MyTimer As Double
'Change this loop as needed.
For x = 1 To 250
'Dummy Loop here just to waste time.
'Replace this loop with your actual code.
MyTimer = Timer
Do
Loop While Timer - MyTimer < 0.03
Application.StatusBar = "Progress: " & x & " of 250: " & Format(x/250, "Percent")
DoEvents
Next x
Application.StatusBar = False
End Sub
這不是進度條,而是狀態欄中的顯示百分比。對於進度條,您需要知道如何使用用戶窗體。第二件事,你的代碼很慢,很慢。使用vba數組。 –
@PatrickLepelletier我不熟悉vba數組。你有一個可以加快我的宏的例子嗎? – vash1422
谷歌或StackOverflow搜索。你會發現很多例子。我無法在此添加此代碼,因爲它不是線程的問題。 (或者換個新的) –