Я обнаружил, что DoEvents не всегда полностью надежен.Я бы предложил попробовать две разные вещи.
Во-первых, попробуйте выполнить вызов DoEvents сразу после обновления строки состояния (т. Е. Перед строкой Some code ....
).
Если это не работаетВ некоторых случаях я обнаружил, что использование Sleep API является более надежным способом экономии времени процессора.Обычно первое, что я пытаюсь сделать, если DoEvents не работает так, как мне бы хотелось.Вам нужно будет добавить следующую строку в верхней части вашего модуля (вне вашей функции):
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Затем добавьте эту строку вместо или в дополнение к DoEvents
:
Sleep 1 'This will pause execution of your program for 1 ms
Вы можете попытаться увеличить продолжительность приостановки программы, используя режим сна, если не работает 1 мс.