Excel VBA OnTime für weniger als 1 Sekunde, ohne dass es nicht mehr reagiert
Ich habe ein Benutzerformular, das alle 100ms ein Skript ausführt. Das Skript verarbeitet Bilder im Benutzerformular und wird zum Animieren verwendet, während das Formular weiterhin Benutzereingaben empfängt (Mausklicks und Tastendrücke). Dies wird fortgesetzt, bis das Benutzerformular geschlossen wird. Während Application.OnTime am besten zu funktionieren scheint, funktioniert es nur mit Zeitwerten von 1 Sekunde oder mehr.
Wenn ich so etwas benutze
Sub StartTimer()
Application.OnTime now + (TimeValue("00:00:01") / 10), "Timer"
End Sub
Private Sub Timer()
TheUserForm.ScreenUpdate
Application.OnTime now + (TimeValue("00:00:01") / 10), "Timer"
End Sub
Wenn Sie StartTimer in der Benutzerform aufrufen, reagiert Excel nicht mehr und "Timer" wird viel häufiger pro Sekunde aufgerufen, als es sollte.
Die Verwendung der Sleep-Funktion führt dazu, dass das Programm ebenfalls nicht mehr reagiert, obwohl das Skript mit dem richtigen Intervall ausgeführt wird.
Gibt es eine Problemumgehung dafür? Danke im Voraus!