Excel VBA加载图片并暂停代码-暂停

时间:2018-11-15 12:48:14

标签: excel vba

我对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 :(得分:0)

您不给表格重新粉刷的机会。

在分配图像后(就在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