|
楼主 |
发表于 2014-8-29 10:26
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
解析一下附件中的VBA部分:
Private Sub CommandButton1_Click()
'21*21的数据源大小,使用"曲面图",这一段是归零
For j = 1 To 21
For k = 1 To 21
Sheet1.Cells(j, k) = 0
Next
Next
'这里开始计算了
For i = 1 To 60 Step 0.1 '循环60次,每次针对21*21个数字重新计算高度,高度计算使用正弦,基于21*21的点距离中心点(11,11)的距离
For j = 1 To 21 ' 21*21的X轴
For k = 1 To 21 ' 21*21的Y轴
If ((k - 11) ^ 2 + (j - 11) ^ 2) ^ (0.5) <= i Then ' 这里判断是防止一开始21*21都被计算, 因为水滴开始的时候只有中心在动
Sheet1.Cells(j, k) = Sin((((k - 11) ^ 2 + (j - 11) ^ 2) ^ 0.5) - i) * (10 - i / 6) ' 这里就是计算21*21中每个点的高度, * (10 - i / 6) 是波幅随 I 的增加而减少
End If
Next
Next
DoEvents ' 别忘记释放焦点,否则动态chart很容易变成固态
Next
End Sub
|
|