钟摆动画图

本文通过制作一个动画图表,演示了一些基本的VBA技术,同时演示了VBA快速简化重复任务的能力。

如下图1所示,总共由16个钟摆组成。

图1

每个钟摆需要4个命名公式,这意味着16个钟摆需要64个命名公式,同时添加16个系列到图表中。

《写给儿童的中国历史》(全彩铜版14册)中国孩子历史启蒙首选书,连续六年当当童书榜历史类图书状元!加印30次,累销1800万本,读者好评760000+

作者:陈卫平著 步印童书 出品

当当

命名公式

图中的每个钟摆都基于4个命名公式:

名称p1Len:=’1’!$B$9

长度存储在工作表中

名称p1o:=OMax*SIN(SQRT(g/p1Len)*t)

在时刻t时钟摆1当前角度位置

名称p1x:=p1Len*SIN(p1o)*{0;1}

在时刻t时钟摆1当前坐标的X位置

名称p1y:=-p1Len*COS(p1o)*{0;1}

在时刻t时钟摆1当前坐标的Y位置

图2

使用p2、p3等替换上文中的p1得到其他钟摆名称。

在示例工作簿的“Named Formulas”工作表上,显示了按上述规则命名的公式,可以使用简单的VBA程序装载这些命名公式。程序代码为:

SubLoad_Named_Ranges()

Dim c As Range

For Each c In Selection

ActiveWorkbook.Names.Add Name:=c.Text,RefersTo:=c.Offset(, 1).Text

Next

End Sub

首先选择工作表Named Formulas中的名称列区域,然后运行程序即可将命名公式装载到名称框。注意,在运行本程序前先清空名称框中含有字母“p”的名称。

写给儿童的中国地理(全14册)

作者:陈卫平、陈雨岚等 步印童书 出品

当当

添加图表系列

下面,添加16个图表系列到图表中,1个钟摆1个系列。在示例工作簿的“Add Cht Series”工作表上使用公式编写了16个图表系列名称、X值和Y值。然后,使用简单的VBA程序将其装载到图表中。程序代码为:

SubAdd_Cht_Series()

Dim sNumb As Integer

Worksheets("1").ChartObjects("Chart 5").Activate

Dim c As Range

For Each c In Worksheets("Add ChtSeries").Range("B11:B12")

sNumb =ActiveChart.SeriesCollection.Count + 1

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(sNumb).Name = c.Text

ActiveChart.SeriesCollection(sNumb).XValues= c.Offset(, 1).Text

ActiveChart.SeriesCollection(sNumb).Values = c.Offset(, 2).Text

Next

End Sub

小结

本示例展示如何使用一些简单的VBA代码并相互借鉴来简化2个常见且重复的任务。

在创建命名公式中,代码编写不到2分钟,在工作表中输入公式不到5分钟。如果在使用Excel的定义名称功能,不知道要用多少时间且能否保证正确。

因此,对于大量重复任务,转换一下思维方式,使用VBA来节省宝贵的时间和精力。

(0)

相关推荐