So zeigen Sie eine Nachricht in der Excel-Statusleiste mit VBA an

Anonim

Die Statusleiste in Excel kann als Codemonitor verwendet werden. Wenn Ihr VBA-Code lang ist und Sie mehrere Aufgaben mit VBA ausführen, deaktivieren Sie häufig die Bildschirmaktualisierung, damit dieser Bildschirm nicht flackert. Aber aus diesem Grund erfahren Sie nicht, was in Ihrem Code vor sich geht.

Wenn Sie nicht wissen, wo sich die Statusleiste in Excel befindet, hier ist sie:

Sie können eine Excel-Statusleiste verwenden, um Informationen aus Excel abzurufen, ohne die Codeausführung zu beeinträchtigen. Sie können die Etappen Ihres Marco in der Statusleiste anzeigen oder als Fortschrittsbalken verwenden.

VBA-Code zum Anzeigen von Nachrichten in der Statusleiste von Excel

Application.StatusBar = "Nachricht"

StatusBar ist eine Eigenschaft des Application-Objekts, das Text als Eingabe akzeptiert.

In diesem Beispiel zeige ich nur, welche Funktion ausgeführt wird…

Sub DisplayMessageOnStatusBar() Application.ScreenUpdating = False Application.StatusBar = "Funktion 1 aufrufen" ' call function_1 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "Funktion zwei aufrufen" 'Funktion_2 aufrufen Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "Funktion Drei aufrufen" 'Funktion_3 aufrufen Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "" Application.ScreenUpdating = True End Sub 

In diesem Beispiel wird die Bildschirmaktualisierung am Anfang auf False gesetzt.

Jetzt, bevor ich die Funktion_1 aufrufe, zeige ich eine Nachricht an, die Funktion eins aufruft.

Application.Wait (Now + TimeValue("00:00:2")) Diese Codezeile dient nur dazu, einen langen Funktionsaufruf vorzutäuschen, damit ich 2 Sekunden Zeit habe, um dies in meiner Statusleiste zu sehen.

Ich habe es vor allen Funktionsaufrufen gemacht und am Ende die Statusleiste auf leer ("") gesetzt.

Die Meldungen in der Statusleiste sind sehr nützlich, um Meldungen anzuzeigen, während Sie mit langem Code arbeiten. Wenn Ihr Code mehrere Phasen durchläuft oder eine lange Schleife ausführt, können Sie dies in der Statusleiste anzeigen, damit der Benutzer weiß, dass der Code ausgeführt wird. Andernfalls könnte der Benutzer denken, dass das System hängen geblieben ist oder so.

Jetzt können Sie mit diesem Einzeiler mit VBA von Excel 2016, 2013, 2010 und 2007 auf intelligente Weise Informationen in der Statusleiste abrufen.

ALTER POST

Bestimmte vba-Makros / -Codes brauchen lange, um die erforderlichen Aktionen auszuführen oder auszuführen. Wenn Sie die Bildschirmaktualisierung über die Zeile . ausgeschaltet haben Application.ScreenUpdating = False Wenn ein Benutzer den Code am Anfang Ihres Codes ausführt, weiß er nicht, was vor sich geht, und denkt, dass das Computersystem nicht reagiert. Sie können den Code bitten, eine Statusmeldung in der Statusleiste anzuzeigen, damit der Benutzer über den aktuellen Status des Codes informiert wird.

Hier ist ein einfacher Code, der ein Meldungsfeld mit den Werten in Spalte A ab Zeile 2 bis zur letzten Zeile anzeigt. In der Statusleiste wird die Meldung „Macro running“ angezeigt, während der Code ausgeführt wird, und sobald der Code fertig ist, wird „Ready“ angezeigt, eine der standardmäßigen Excel-Meldungen.

Option Explicit Sub macro1() Dim i As Long, lrow As Long Application.ScreenUpdating = False Application.DisplayAlerts = False Application.DisplayStatusBar = True With Worksheets("Sheet1") lrow = .Range("A" & .Rows.Count) .End(xlUp).Row For i = 2 to lrow Application.StatusBar = „Macro running“ Msgbox .Range(“A“ &i).Value Next i End With Application.StatusBar = „“ Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub 

Um den obigen Code in Ihre Datei zu kopieren,

  • Drücken Sie Alt + F11 auf der Tastatur.
  • Auf der linken Seite sehen Sie Microsoft Excel-Objekte.
  • Klicken Sie mit der rechten Maustaste und wählen Sie Einfügen.
  • Klicken Sie dann auf Modul.
  • Kopieren Sie den Code in das Codefenster rechts.

Sie können den Code sehen, der im Modul unten veröffentlicht wurde -

Lassen Sie uns nun verstehen, was jede Zeile des Codes tut -

Also setzen wir zuerst DISPLAYSTATUSBAR auf true und dann setzen wir die Meldung für die Statusleiste. Sobald wir verwenden Application.StatusBar = „“ Am Ende des Codes wird auf die Standard-Excel-Nachricht zurückgesetzt, die BEREIT ist.

Hier ist ein Bild der Statusleiste, während das Makro ausgeführt wird.

Nachdem das Makro abgeschlossen ist, wird die Statusleiste wie folgt angezeigt:

Auf ähnliche Weise können Sie die Statusleiste an verschiedenen Stellen des Codes aktualisieren, damit der Benutzer weiß, was während der Ausführung des Makros passiert. Manchmal kann es ein oder mehrere Makros geben, die mehrere Prozesse abdecken, und diese Statusleiste ist nützlich, um zu wissen, an welchem ​​​​Prozess das Makro angekommen ist.

Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie mit Ihren Freunden auf Facebook. Und Sie können uns auch auf Twitter und Facebook folgen.
Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder erneuern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site

Populäre Artikel:

50 Excel-Kurzbefehle zur Steigerung Ihrer Produktivität

So verwenden Sie die SVERWEIS-Funktion in Excel

So verwenden Sie die ZÄHLENWENN-Funktion in Excel

So verwenden Sie die SUMIF-Funktion in Excel