Excel VBA загрузить картинку и код паузы - приостановить - PullRequest
0 голосов
/ 15 ноября 2018

У меня проблема с функцией LoadPicture.Я хочу, чтобы пользователь нажал кнопку, которая открывает форму пользователя с полем Изображение.В этом поле изображения каждую секунду я загружаю случайное изображение из папки на моем компьютере.Через десять секунд последнее изображение появляется и остается, пока пользователь не закроет пользовательскую форму.

Моя проблема в том, что в большинстве случаев появляется первое изображение, и ничего не происходит через десять секунд, пока не появится последнее изображение.Кажется, у vba есть проблемы с комбинацией загрузки картинок и приостановки кода на 1 секунду.

это мой код:

Sub Button1_click()
Dim i,Picturename  as Integer

userform1.show
For i=1 to 10
    Randomize
    Picturename=(Int(10 * Rnd + 1)
    Userform1.Image1.Picture = LoadPicture("C:\Users\uib25432\Pictures\Foldername\" & Picturename & ".jpg")
    Application.Wait Now + #12:00:01 AM#
next

End Sub

Я хотел бы знать, если кто-то имелта же проблема, и если есть какое-то решение для этой «приостановки».

1 Ответ

0 голосов
/ 15 ноября 2018

Вы не даете форме перекрасить.

Поставьте DoEvents после присвоения изображения (прямо перед Wait). Если это не решает проблему, вы также можете выполнить Repaint -команду, которая заставит форму перерисовываться.

for i = 1 to 10
    ...
    Userform1.Image1.Picture = LoadPicture("C:\Users\uib25432\Pictures\Foldername\" & Picturename & ".jpg")
    UserForm1.Repaint
    DoEvents
    Application.Wait Now + #12:00:01 AM#
next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...