下面我们来详细介绍实现Excel动画图表的过程。
准备数据
如下图1所示,在单元格区域A3:C16中是使用的示例数据。...
在Excel中,我们可以绘制动画图表,如下图所示。
下面我们来详细介绍实现Excel动画图表的过程。
准备数据
如下图1所示,在单元格区域A3:C16中是使用的示例数据。
图1
以图1的示例数据为基础,使用公式得到数据区域E3:G16,如下图2所示。
图2
其中,单元格F4中的公式为:
=IF($E4<=$F$1,B4,NA())
向下拉至单元格F16。
单元格G4中的公式为:
=IF($E4<=$F$1,IF(C4=0,””,C4),NA())
向下拉至单元格G16。
并将单元格F1命名为:
step
绘制图表
选择数据区域E3:F16,插入折线图,并添加数据标签,进行适当的格式设置,结果如下图3所示。
图3
其中,数据标签取单元格区域G4:G16中的值,并显示引导线。在Excel 2016中设置数据标签格式如下图4所示。(在之前的Excel版本中,可能要经过一些操作才能达到同样的效果,或者使用专门的加载宏)
图4
编写VBA代码
在绘制的图表右上角放置一个按钮控件,并指定宏,如下图5所示。
图5
VBA代码如下:
Sub chartanimate()
Dim i As Long
Dim size As Long
size = 120
For i = 0 To size
[step] = i / 10
DoEvents
Next i
End Sub
excel柱形图的秘密
柱形图常用于不同时期的数据比较,简单直观,是数据分析中常用的一种图形。如下图1所示,表中记录了某产品每年的销售量。 图1 使用柱形图,如下图2所示,显示每年的销售量。可以很清楚地看出,2015年销售量最大,2012年销售量最小,2015年和2017年销售量差别不大,等等。 图2 在图2所示的柱形图中,横
调整图表设置
单击“开启动画绘图”按钮,效果如下图6所示。
图6
可以看到,效果并不,主要是随着图表的绘制,坐标轴的数值不断变化。可以对垂直坐标轴的数值进行设置,手动输入最大值,如下图7所示。
图7
最后的效果如下图8所示。
图8
让动画速度可以调节
设置数据验证,如下图9所示,在单元格B20中可以选取相应的速度项。
图9
设置速度值查询表,如下图10所示的单元格区域D20:E25。
图10
命名单元格。如下图11所示,单元格H20的名称为“scale”,单元格H21的名称为“step”。
图11
其中,单元格H20中的值使用查找公式得到,公式为:
=VLOOKUP(B20,$D$21:$E$25,2,FALSE)
这样,在选取单元格B20中的数值后,单元格H20中的值会相应变化,从而设置相应的速度值。
修改绘图数据区域中的相应公式,如下图12和图13所示。
图12
图13
将单元格F4和G4分别下拉至第16行。
此时,单击“开启动画绘图”按钮,我们可以看到完整的绘制图表过程及数据变化过程。如下图14所示。
图14
在单元格B20中选取不同的速度,看看绘制图表的快慢效果,如下图15所示。
图15
结语
图表是以数据为驱动的,因此数据的动态调整,并适当拉长数据的调整时间,就可以实现动画图表效果。
使用公式来实现数据的动态调整。
使用VBA来拉长数据的调整时间。
Excel列宽的秘密
我们知道,Range对象的Width属性能够返回单元格的宽度,但不能够给Width属性赋值以指定单元格的宽度。要设置单元格的宽度,可以使用ColumnWidth属性,当然,该属性也可以返回单元格的宽度值。 单元格的宽度也就是单元格所在列的列宽。在VBA帮助中明确指出,列宽的1个单位等于采用标准样式的1个字符的宽度。对