/ / Excel-VBA-Statusleisteneigenschaft

Excel-VBA-Statusleisteneigenschaft

Das Statusleiste-Eigenschaft des Anwendungsobjekts in Excel VBA kann verwendet werden, um den Fortschritt eines langen Makros anzuzeigen. Auf diese Weise können Sie dem Benutzer mitteilen, dass ein Makro noch ausgeführt wird.

Situation:

Das Makro, das wir erstellen werden, füllt den Bereich ("A1: E20") mit Zufallszahlen.

Excel VBA StatusBar-Eigenschaft Beispiel

Fügen Sie der Befehlsschaltfläche die folgenden Codezeilen hinzu:

1. Zuerst deklarieren wir drei Variablen vom Typ Integer mit den Namen i, j und pctCompl.

Dim i As Integer, j As Integer, pctCompl As Integer

2. Fügen Sie eine doppelte Schleife hinzu.

For i = 1 To 20
    For j = 1 To 5

    Next j
Next i

Fügen Sie der Schleife die folgenden Codezeilen hinzu (bei 3, 4 und 5).

3. Verwenden Sie die Funktion RandBetween, um eine Zufallszahl zwischen 20 und 100 zu importieren.

Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)

4. Initialisieren Sie die Variable pctCompl. Die zweite Codezeile schreibt den Wert der Variablen pctCompl und einen beschreibenden Text in die Statuszeile.

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% wurde abgeschlossen.

5. Wir verwenden die Wait-Methode des Application-Objekts, um ein langwieriges Makro zu simulieren.

Application.Wait Now + TimeValue("00:00:01")

6. Um den Text der Standardstatusleiste wiederherzustellen, setzen Sie die StatusBar-Eigenschaft auf False (außerhalb der Schleife).

Application.StatusBar = False

Ergebnis, wenn Sie auf die Befehlsschaltfläche auf dem Blatt klicken:

Excel VBA StatusBar-Eigenschaft Ergebnis

Hinweis: Sie können ein Makro jederzeit durch Drücken von Esc oder Strg + Abbruch unterbrechen. Einen visuelleren Ansatz finden Sie in unserem Progress Indicator-Programm.

Lesen Sie auch: