我对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
我想知道是否有人遇到过同样的问题,并且对于这种“暂停”是否有某种解决方案。
答案 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