Excel VBA StatusBar Property
Die StatusBar-Eigenschaft des Application-Objekts in Excel VBA kann verwendet werden, um den Fortschritt einer langen Makro anzuzeigen. Auf diese Weise können Sie die Benutzer wissen lassen, dass ein Makro noch läuft.
Situation:
Das Makro wir schaffen wollen füllt Range ( „A1: E20“) mit Zufallszahlen.
Fügen Sie die folgenden Codezeilen in die Befehlsschaltfläche:
-
Zuerst erklären wir drei Variablen vom Typ Integer, mit dem Namen i, j und pctCompl.
Dim i As Integer, j As Integer, pctCompl As Integer
-
Double Loop hinzufügen.
For i = 1 To 20 For j = 1 To 5 Next j Next i
Fügen Sie die folgenden Codezeilen (bei 3, 4 und 5) an die Schleife.
-
Mit der RANDBETWEEN Funktion eine Zufallszahl zwischen 20 und 100 importieren
Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
-
Initialisieren die Variable pctCompl. Die zweite Codezeile schreibt den Wert der Variablen pctCompl und einigen beschreibenden Text in der Statusleiste.
pctCompl = (i - 1) 5 + (j 1) Application.StatusBar = "Importing Data.. " & pctCompl & "% Completed"
Beispiel: Für i = 3, j = 1, (3 – 1) 5 + (1 1) = 11% abgeschlossen ist.
-
Wir verwenden die Wait-Methode des Application-Objekts einen langwierigen Makro zu simulieren.
Application.Wait Now + TimeValue("00:00:01")
-
die Standardstatusleiste Text wiederherzustellen, stellen Sie die StatusBar-Eigenschaft auf False (außerhalb der Schleife).
Application.StatusBar = False
Ergebnis, wenn Sie auf das Befehlsschaltflächen auf dem Blatt klicken:
Hinweis: Sie können Interrupt ein Makro jederzeit Esc oder Strg + Pause drücken. Für einen visuellen Ansatz finden Sie in unserem Progress Indicator Programm.