下面我们就来看看在Excel VBA程序创建一个滚动平均值表。将工作表上的一个命令按钮并添加以下代码行:

Range("B3").Value = WorksheetFunction.RandBetween(0, 100)

此代码线进入0和100之间的随机数到细胞B3。我们希望Excel VBA采取新的股票价值,并将其放置在滚动平均表的第一位置。所有其它的值应该向下移动一个地方,最后的价值应该被删除。

Rolling Average Table in Excel VBA

Rolling Average Table in Excel VBA

创建工作表更改事件。添加到工作表更改事件代码将被Excel VBA,当你在工作表上更改单元格执行。

1.打开Visual Basic编辑器。

2.双击工作表Sheet1(Sheet1中)在项目资源管理器。

3.从左边的下拉列表中选择工作表。从右侧的下拉列表中选择更改。

Worksheet Change Event in Excel VBA

添加以下代码行的工作表更改事件:

4.声明一个叫做类型整数和两个范围(firstfourvalues和lastfourvalues)的NEWVALUE变量。

Dim newvalue As Integer, firstfourvalues As Range, lastfourvalues As Range

5.工作表更改事件侦听Sheet1上的所有变化。我们只希望Excel VBA到某些东西在B3单元格的变化做一些事情。要做到这一点,添加以下代码行:

If Target.Address = "$B$3" Then

6.我们初始化NEWVALUE与细胞B3的值,与范围firstfourvalues( “D3:D6”),并用lastfourvalues范围( “D4:D7”)。

newvalue = Range("B3").Value

Set firstfourvalues = Range("D3:D6")

Set lastfourvalues = Range("D4:D7")

7.现在到了简单的一招。我们要更新的滚动平均值表。您可以通过使用该表的前四个值将最后四个值,并把新的股票价值在第一位置实现这一目标。

lastfourvalues.Value = firstfourvalues.Value

Range("D3").Value = newvalue

8.不要忘记关闭if语句。

End if

9.最后,输入公式= AVERAGE(D3:D7)插入细胞D8。

10.测试通过点击命令按钮程序。