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.

Excel VBA StatusBar Property Example

Fügen Sie die folgenden Codezeilen in die Befehlsschaltfläche:

  1. 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
  1. 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.

  1. Mit der RANDBETWEEN Funktion eine Zufallszahl zwischen 20 und 100 importieren

Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
  1. 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.

  1. Wir verwenden die Wait-Methode des Application-Objekts einen langwierigen Makro zu simulieren.

Application.Wait Now + TimeValue("00:00:01")
  1. 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:

Excel VBA StatusBar Property Result

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.