wie kann ich es erreichen, das ein Makro das gestartet wird noch 3sec. wartet, bis die eigentlichen Funktionen starten?
Danke
Mfg
Sascha
Sub Document_open()
Application.Wait Now + TimeSerial(0, 0, 3)
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With
ActiveDocument.PrintOut Background:=False
Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Document_open()
Sleep 3000
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With
ActiveDocument.PrintOut Background:=False
Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub
Öffne den Visual Basic for Applications (VBA) Editor in Excel (ALT + F11).
Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" -> Einfügen -> Modul).
Schreibe den folgenden Code in das Modul:
Sub MakroMitWartezeit()
Application.Wait Now + TimeSerial(0, 0, 3) 'Warte 3 Sekunden
' Dein Hauptcode hier
End Sub
Ersetze den Kommentar ' Dein Hauptcode hier
mit dem Code, der nach der Wartezeit ausgeführt werden soll.
Speichere das Modul und schließe den VBA-Editor.
Starte das Makro über Excel (Entwicklertools -> Makros -> Makro auswählen -> Ausführen).
Diese Methode nutzt Application.Wait
, um das Makro für 3 Sekunden anzuhalten. Dies ist eine gängige Methode, um in Excel VBA zu warten.
Fehlermeldung: Methode oder Datenobjekt nicht gefunden.
Dies kann passieren, wenn der Code nicht korrekt eingegeben wurde oder wenn ein Fehler in der Syntax vorliegt. Überprüfe den Code auf Tippfehler oder fehlende Teile.
Das Makro wartet nicht.
Stelle sicher, dass der Code korrekt in ein Modul eingefügt wurde und dass du die richtige Sub-Routine ausführst.
Eine alternative Methode, um in VBA zu warten, ist die Verwendung der Sleep
-Funktion aus der Windows-API. Hier ist ein Beispiel:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub MakroMitSleep()
Sleep 3000 'Warte 3000 Millisekunden (3 Sekunden)
' Dein Hauptcode hier
End Sub
Diese Methode könnte bei bestimmten Anwendungen nützlich sein, insbesondere wenn du einen vba warten
-Befehl benötigst, der flexibler ist.
Serienbriefausdruck mit Wartezeit: Wenn du einen Serienbrief aus Excel starten möchtest, kannst du den folgenden Code verwenden:
Sub SerienbriefMitWartezeit()
Application.Wait Now + TimeSerial(0, 0, 3)
' Code für den Serienbrief hier
End Sub
Makro, das nach einer bestimmten Zeit startet: Für ein Makro, das nach 5 Sekunden wartet, kannst du diesen Code verwenden:
Sub MakroNach5Sekunden()
Application.Wait Now + TimeSerial(0, 0, 5)
' Weitere Aktionen hier
End Sub
DoEvents
, um sicherzustellen, dass Excel während der Wartezeit weiterhin reagiert. Dies kann in langen Warteschleifen hilfreich sein.1. Wie kann ich das Makro für 1 Sekunde pausieren?
Du kannst die Application.Wait
Methode verwenden und die Zeit auf 1 Sekunde anpassen:
Application.Wait Now + TimeSerial(0, 0, 1)
2. Kann ich die Wartezeit anpassen?
Ja, ändere einfach die Zeitparameter in TimeSerial(Stunden, Minuten, Sekunden)
nach Bedarf.
3. Funktioniert das auch in Word?
Ja, die gleiche Syntax kann auch in Word VBA verwendet werden, aber du musst sicherstellen, dass die entsprechenden Objekte und Methoden für Word vorhanden sind.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen