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!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage