下面我们将查看Excel VBA中的一个程序,该程序创建滚动平均值表。在您的工作表上放置一个命令按钮,并添加以下代码行:
Range(“ B3”)。Value = WorksheetFunction.RandBetween(0,100)
此代码行在单元格B3中输入0到100之间的一个随机数。我们希望Excel VBA接受新的库存值并将其放置在滚动平均值表的第一位置。所有其他值应向下移动一个位置,最后一个值应删除。
创建一个工作表更改事件。当您更改工作表上的单元格时,Excel VBA将执行添加到工作表更改事件中的代码。
1.打开Visual Basic编辑器。
2.在项目浏览器中双击Sheet1(Sheet1)。
3.从左侧下拉列表中选择“工作表”。从右边的下拉列表中选择更改。
将以下代码行添加到工作表更改事件:
4.声明一个名为Integer类型的newvalue和两个范围(firstfourvalues和lastfourvalues)的变量。
Dim newvalue 作为 Integer,firstfourvalues 作为 Range,lastfourvalues 作为 Range
5.工作表更改事件侦听Sheet1上的所有更改。如果单元格B3中发生某些更改,我们只希望Excel VBA可以执行某些操作。为此,请添加以下代码行:
如果 Target.Address =“ $ B $ 3”,则
6.我们用单元格B3的值初始化newvalue,用Range(“ D3:D6”)的firstfourvalues和用Range(“ D4:D7”)的lastfourvalues初始化。
newvalue = Range(“ B3”)。Value
设置 firstfourvalues = Range(“ D3:D6”)
设置 lastfourvalues = Range(“ D4:D7”)
设置 firstfourvalues = Range(“ D3:D6”)
设置 lastfourvalues = Range(“ D4:D7”)
7.现在来个简单的把戏。我们要更新滚动平均值表。您可以通过用表的前四个值替换后四个值并将新的库存值放在第一个位置来实现此目的。
lastfourvalues.Value = firstfourvalues.Value
Range(“ D3”)。Value = newvalue
Range(“ D3”)。Value = newvalue
8.不要忘记关闭if语句。
如果结束
9.最后,在单元格D8中输入公式= AVERAGE(D3:D7)。
10.单击命令按钮测试程序。