Excel Mac 2011 VBA中用于形状动画的DoEvents不';行不通

Excel Mac 2011 VBA中用于形状动画的DoEvents不';行不通,vba,excel,animation,doevents,Vba,Excel,Animation,Doevents,我试图制作一个点水平移动的动画,表示一个微分方程的解,它表示一个非线性动力系统。我使用一个形状(一个小椭圆形代表点),我的想法是利用一个等待函数来更新它的位置参数(我知道这个函数是有效的,从方程解中提取实际经过的时间步长)我遇到了问题,因为在所有宏执行期间,形状的位置不会通过多个值列表进行更新,只显示列表中的最后一个位置。我正在向DoEvents发送垃圾邮件,以强制执行屏幕更新。但由于某些原因,它不起作用。我用的是OS X El Capitan 我在网上看过一段视频,有人演示了几乎相同代码的使用

我试图制作一个点水平移动的动画,表示一个微分方程的解,它表示一个非线性动力系统。我使用一个形状(一个小椭圆形代表点),我的想法是利用一个等待函数来更新它的位置参数(我知道这个函数是有效的,从方程解中提取实际经过的时间步长)我遇到了问题,因为在所有宏执行期间,形状的位置不会通过多个值列表进行更新,只显示列表中的最后一个位置。我正在向DoEvents发送垃圾邮件,以强制执行屏幕更新。但由于某些原因,它不起作用。我用的是OS X El Capitan

我在网上看过一段视频,有人演示了几乎相同代码的使用,创造了奇迹:

即使是像下面这样简单的事情也不会像预期的那样起作用:

DoEvents
ActiveSheet.Shapes("Moving Point").Left = MyZero
ActiveSheet.Shapes("Moving Point").Top = VertRef
DoEvents
timeout (1)
msgbox("Updated.")
当宏结束时,msgbox将首先显示,然后我将看到点设置在其零位置。timeout是我的等待函数,我已经测试过了,它工作得很好(顺便说一下,还有更多的DoEvents垃圾邮件):

这真的意味着要在这样的条件下工作吗? 先谢谢你

Sub timeout(duration_ms As Double)
    Dim Start_Time As Double
    Start_Time = Timer
    Do
        DoEvents
    Loop Until (Timer - Start_Time) >= duration_ms
End Sub