在Excel中的图像ActiveX中显示一堆图像

问题描述:

有人可以在这方面给我启发。我需要使用按钮在Excel的Image ActiveX控件中显示一系列图片(如约58个图片)。如果我按下一个按钮,它会像GIF一样自动播放图像(我们无法使用gif)。我有点在循环弱所以能有人HEP我在Excel中的图像ActiveX中显示一堆图像

Sub Button3_Click() 
Dim x As Integer 

x = 1 

    ActiveSheet.Image1.Picture = LoadPicture(ThisWorkbook.Path   & "\Images\Irene\" & x & ".jpg") 

'MsgBox (ThisWorkbook.Path & "\Images\Irene\" & x & ".jpg") 
End Sub 

试试这个:

Sub main() 
    Dim iPic As Long 

    With ActiveSheet.Image1 
     For iPic = 1 To 6 
      .Picture = LoadPicture(ThisWorkbook.Path & "\Images\Irene\" & iPic & ".jpg") 
     Next 
    End With 
End Sub 

在我的编码为这样的事情我也用一种“计时器”的,让图片显示:

Sub main() 
    Dim iPic As Long 

    With ActiveSheet.Image1 
     For iPic = 1 To 6 
      .Picture = LoadPicture(ThisWorkbook.Path & "\Images\Irene\" & iPic & ".jpg") 
      MyWait '<--| added to let pictures be actually shown one by one 
     Next 
    End With 
End Sub 

Sub MyWait() 
    Dim time1, time2 

    time1 = Now 
    time2 = Now + TimeValue("0:00:01") 
    Do Until time1 >= time2 
     DoEvents 
     time1 = Now() 
    Loop 
End Sub 
+0

所以说明一下,这行(对于iPic = 1到6)是我有的图片数量?以及如何让图片显示速度如此之快,我的意思是像一个GIF文件,上面的代码缓慢地显示它们,我应该使用什么值TimeValue – danjok

+0

1)是的,我的代码中的数字6是您拥有的图片数量。 2)我的代码中的显示速度由'MyWait()'sub通过'time2'赋值语句的'+ TimeValue(“0:00:01”)'部分调整,该赋值语句当前为1秒。为了加快速度,您必须搜索与我的处理时间量小于1秒的方法不同的方法(例如,请参见[这里](http://stackoverflow.com/questions/1470632/vba-show-clock-time -with-accuracy-of-a-second)) – user3598756

+0

@danjok,因为我回答了你关于如何循环图像的问题,你可能想要接受它。谢谢 – user3598756