作者:绿色风
分类:
时间:2022-08-17
浏览:173
楼主 amulee |
Excel也能做动画,其实只要运用一些简单的代码就行。 比如附件中的例子。 加速、匀速和减速运动.rar
我们事先创建一个散点图,其坐标在A单元格。我们来看一下加速运动的公式,A的数值就是点的坐标,也就代表点行进的路程。公式如下:- V2 = V1 + 0.01 * AC
- [A1] = [A1] + (V2 + V1) * T / 2
其中V1为初速度,V2为末速度,T为时间,AC为加速度(加速度可以为正数--加速运动,负数--减速运动,0--匀速运动)。 通过上述赋值的反复执行就可以得到一个点运动的动画。代码如下(将点的横坐标最大设为28):- Do While [A1] <= 28
- V2 = V1 + T * AC
- [A1] = [A1] +
- (V2 + V1) * T / 2
- V1 = V2
- DoEvents
- Loop
然后我们只要能够计算T这样的时间间隔就行了。Excel其实提供了很多的方法来计时,下面介绍三种方法计时。 1、API 函数的Sleep函数 Sleep函数的语法很简单,只要- Sleep 毫秒数
2、Timer VBA内置的Timer函数,记录了从午夜开始到现在经过的秒数。 我们通过以下代码的循环可以得到0.01秒的时间间隔。- t = Timer
- Do While Timer - t < 0.01
- Loop
3、Application.Wait Excel VBA所提供的Wait方法允许程序暂停运行,直到一特定时间才可继续执行。 比如下面代码就让程序暂停0.01秒后再运行- Application.Wait (Now + 1 / 8640000)
综合上述代码,我们可以创建一个的过程,可以让点进行加速、减速、匀速运动。- Sub MoveSleep()
- Dim V1, V2, AC
- [A1] = 0
- V1 = 5
- AC = 0 '匀速运动
- ' AC = 0.4 '加速运动
- ' AC = -0.4 '减速运动
- Do While [A1] <= 28
- V2 = V1 + 0.01 * AC
- [A1] = [A1] + (V2 + V1) * 0.01 / 2
- V1 = V2
- Sleep 0.01
- DoEvents
- Loop
- End Sub
具体请参考附件的代码。 |
2楼 zhyou |
期待着提供更多的教程 加油 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一