VBA-Sleep-Funktion

Sleep-Funktion in VBA ist eigentlich eine Windows-Funktion. Es ähnelt der Wait-Funktion in VBA. Es wird verwendet, um zu verlangsamen oder anzuhalten, oder wir können sagen, dass die Ausführung eines bestimmten Codes um eine festgelegte Zeit angehalten wird. Die Sleep-Funktion muss in VBA aufgerufen werden, während sie im Code deklariert wird. Wie wir das machen, werden wir im heutigen Thema lernen.

Wie oben erläutert, ist VBA Sleep eine Windows-Funktion, die in der Kerneldatenbank von Windows vorhanden ist. Die Methode zum Deklarieren und Aufrufen der Sleep-Funktion in VBA unterscheidet sich sowohl für 32-Bit-Betriebssysteme als auch für 64-Bit-Betriebssysteme. Es ist im Grunde eine Windows-API-Funktion.

Die Syntax für die Verwendung der VBA-Sleep-Funktion lautet wie folgt:

Schlaf (Zeit in Millisekunden)

Wenn wir also den Code für 1 Sekunde verlangsamen oder anhalten müssen, müssen wir den Code wie folgt schreiben:

 Schlaf 1000 

1000 ist die Millisekunde, die 1 Sekunde entspricht und den Code für 1 Sekunde verlangsamt. Wenn wir den Code für 5 Sekunden verlangsamen möchten, lautet der Code:

 Schlaf 5000 

Die Deklaration für die Schlaffunktion lautet wie folgt:

 #Wenn VBA7, dann 'Excel 2010 oder später Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr) #Else' Excel 2007 oder früher Public Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) #End If 
Hinweis: Bevor Sie die Sleep-Funktion verwenden, müssen Sie eines beachten. Wir müssen diese Funktion in Modulen verwenden, nicht in den Objekten von Excel. So verwenden Sie VBA, um sicherzustellen, dass die Registerkarte des Entwicklers über die Registerkarte "Dateien" im Abschnitt "Optionen" aktiviert ist

Wie benutze ich die Excel VBA Sleep-Funktion?

Wir werden lernen, wie man eine VBA Sleep-Funktion benutzt, mit wenigen Beispielen in Excel.

Sie können diese VBA Sleep Excel-Vorlage hier herunterladen - VBA Sleep Excel-Vorlage

VBA-Sleep-Funktion - Beispiel 1

In diesem Beispiel wird dem Benutzer eine Meldung angezeigt, dass das Makro fünf Sekunden lang angehalten wird. Und genau nach fünf Sekunden soll eine zweite Meldung erscheinen, die besagt, dass das Makro wieder aufgenommen wurde.

Führen Sie die folgenden Schritte aus, um die Sleep-Funktion in Excel VBA zu verwenden:

Schritt 1: Gehen Sie zur Registerkarte Entwickler und klicken Sie auf Visual Basic, um den VB-Editor zu öffnen.

Schritt 2: Sobald der VB Editor geöffnet ist, klicken Sie auf Insert Tab und dann auf Module, um ein neues Modul einzufügen.

Schritt 3: Verwenden Sie nun die Deklarationsanweisung, um die Sleep-Funktion zu verwenden. Da ich Windows 64-Bit-Betriebssystem verwende, verwende ich die Deklarationsanweisung für das gleiche.

Code:

 Public Deklariere PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Schritt 4: Deklarieren Sie nun die Unterfunktion, um mit dem Schreiben des Codes zu beginnen.

Code:

 Public PtrSafe deklarieren Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () End Sub 

Schritt 5: Verwenden Sie die Mgsbox-Funktion, um die Meldung anzuzeigen, dass das Makro fünf Sekunden lang angehalten wird.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro wird für fünf Sekunden angehalten" End Sub 

Schritt 6: Verwenden Sie die Sleep-Funktion, um das Makro für fünf Sekunden anzuhalten.

Code:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro wird für fünf Sekunden angehalten" Sleep 5000 End Sub 

Schritt 7: Verwenden Sie jetzt die Funktion msgbox, um die Meldung anzuzeigen, dass das Makro fortgesetzt wurde.

Code:

 Öffentlich deklarieren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro wird für fünf Sekunden angehalten" Sleep 5000 MsgBox "Makro wurde fortgesetzt" End Sub 

Schritt 8: Führen Sie den Code über die entsprechende Schaltfläche aus, oder drücken Sie F5, um das Ergebnis anzuzeigen. Wir sehen, dass die erste Nachricht angezeigt wird.

Schritt 9: Sobald wir auf OK klicken und fünf Sekunden warten, sehen wir eine weitere Meldung.

Zwischen beiden Nachrichten gab es eine Pause von fünf Sekunden.

VBA Sleep-Funktion - Beispiel # 2

In einem weiteren Beispiel werden wir nun vier Variablen A, B, C und D haben. Zuerst möchte ich den Wert von A und B addieren und anzeigen und nach 5 Sekunden den Wert von die Addition von A, B, C und D.

Führen Sie die folgenden Schritte aus, um die Sleep-Funktion in Excel VBA zu verwenden:

Schritt 1: Gehen Sie zur Registerkarte Entwickler und klicken Sie auf Visual Basic, um den VB-Editor zu öffnen.

Schritt 2: Sobald der VB Editor geöffnet ist, klicken Sie auf Insert Tab und dann auf Module, um ein neues Modul einzufügen.

Schritt 3: Verwenden Sie nun die Deklarationsanweisung, um die Sleep-Funktion zu verwenden. Da ich Windows 64-Bit-Betriebssystem verwende, verwende ich die Deklarationsanweisung für das gleiche.

Code:

 Public Deklariere PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Schritt 4: Deklarieren Sie nun die Unterfunktion, um mit dem Schreiben des Codes zu beginnen.

Code:

 Public Deklariere PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub 

Schritt 5: Deklarieren Sie sechs Variablen A, B, C, D, X und Y, um Werte zu speichern.

Code:

 Public Deklariere PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dimme A, B, C, D, X, Y als Integer End Sub 

Schritt 6: Geben Sie A, B, C und D zufällige Werte.

Code:

 Public PtrSafe deklarieren Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () A, B, C, D, X, Y als Ganzzahl dimmen A = 10 B = 15 C = 20 D = 25 End Sub 

Schritt 7: Speichern Sie den Wert von A + B in X.

Code:

 Public Deklariere PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dimme A, B, C, D, X, Y als ganze Zahl A = 10 B = 15 C = 20 D = 25 X = A + B End Sub 

Schritt 8: Zeigen Sie den Wert von X an.

Code:

 Public Deklariere PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dimme A, B, C, D, X, Y als ganze Zahl A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Schritt 9: Verwenden Sie nun die Sleep-Funktion, um fünf Sekunden lang eine Pause einzulegen.

Code:

 Public Deklariere PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dimme A, B, C, D, X, Y als ganze Zahl A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Schritt 10: Speichern Sie nun in der Variablen Y den Wert von X + C + D und zeigen Sie ihn an.

Code:

 Public Deklariere PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dimme A, B, C, D, X, Y als ganze Zahl A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y End Sub 

Schritt 11: Führen Sie den obigen Code über die bereitgestellte Schaltfläche "Ausführen" oder durch Drücken der Taste F5 aus, um das Ergebnis anzuzeigen. Wir sehen, dass die erste Nachricht als angezeigt wird.

Schritt 12: Drücken Sie OK und das Makro wartet fünf Sekunden und zeigt das nächste Ergebnis an.

VBA Sleep-Funktion - Beispiel # 3

In diesem Beispiel möchten wir zwei Arbeitsblätter Blatt 1 und Blatt 2 in Anand bzw. Aran umbenennen. Die Zeitdauer zwischen beiden sollte jedoch fünf Sekunden betragen. Grundsätzlich soll das Makro nach dem Umbenennen von Blatt 1 und anschließendem Umbenennen von Blatt 2 angehalten werden. Derzeit haben beide Blätter den folgenden Namen:

Führen Sie die folgenden Schritte aus, um die Sleep-Funktion in Excel VBA zu verwenden:

Schritt 1: Gehen Sie zur Registerkarte Entwickler und klicken Sie auf Visual Basic, um den VB-Editor zu öffnen.

Schritt 2: Sobald der VB Editor geöffnet ist, klicken Sie auf Insert Tab und dann auf Module, um ein neues Modul einzufügen.

Schritt 3: Verwenden Sie nun die Deklarationsanweisung, um die Sleep-Funktion zu verwenden. Da ich Windows 64-Bit-Betriebssystem verwende, verwende ich die Deklarationsanweisung für das gleiche.

Code:

 Public Deklariere PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Schritt 4: Deklarieren Sie nun die Unterfunktion, um mit dem Schreiben des Codes zu beginnen.

Code:

 Public Deklariere PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub 

Schritt 5: Aktivieren Sie Arbeitsblatt 1 und benennen Sie es mit folgendem Code um:

Code:

 Öffentlich PtrSafe deklarieren Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Arbeitsblätter ("Sheet1"). Arbeitsblätter aktivieren ("Sheet1"). Name = "Anand" MsgBox "Sheet 1 umbenannt in" End Sub 

Schritt 6: Verwenden Sie jetzt die Sleep-Funktion, um die Verzögerung für fünf Sekunden zu aktivieren.

Code:

 Öffentlich deklarieren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Arbeitsblätter ("Sheet1"). Arbeitsblätter aktivieren ("Sheet1"). Name = "Anand" MsgBox "Sheet 1 umbenannt in" Sleep 5000 End Sub 

Schritt 7: Benennen Sie nun das Blatt 2 mit dem folgenden Code um.

Code:

 Öffentlich deklarieren PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Arbeitsblätter ("Sheet1"). Arbeitsblätter aktivieren ("Sheet1"). Name = "Anand" MsgBox "Sheet 1 umbenannt in" Sleep 5000 Worksheets (" Sheet2 "). Arbeitsblätter aktivieren (" Sheet2 "). Name =" Aran "MsgBox" Sheet 2 umbenannt in "End Sub 

Schritt 8: Führen Sie nun den Code aus und wir sehen, dass die erste Meldung angezeigt wird.

Wir können auch überprüfen, ob Blatt 1 umbenannt wurde.

Schritt 9: Drücken Sie OK und warten Sie fünf Sekunden, bis die nächste Nachricht und das zweite Blatt umbenannt wurden.

Das zweite Blatt wird ebenfalls umbenannt.

Dinge, an die man sich erinnern sollte

  • Da VBA Sleep eine Fensterfunktion ist, müssen zur Verwendung Deklarationsanweisungen verwendet werden.
  • Es gibt verschiedene Deklarationsanweisungen für verschiedene Arten von Betriebssystemen.
  • Durch einfaches Verwenden von VBA Sleep wird das Makro für die angegebene Zeitdauer eingefroren.
  • Der Zeitparameter für die VBA-Sleep-Funktion wird in Millisekunden angegeben.

Empfohlene Artikel

Dies ist eine Anleitung zur VBA-Sleep-Funktion. Hier diskutieren wir die Verwendung der Excel VBA Sleep-Funktion zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. VBA VLOOKUP-Funktion
  2. DCOUNT-Funktion in Excel
  3. VBA Copy Paste
  4. COMBIN-Funktion in Excel

Kategorie: