Ниже мы рассмотрим программу в 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

Создание рабочего листа Изменить событие. Код добавлен в Worksheet Change Event будет выполняться Excel VBA при изменении ячейки на листе.

  1. Откройте редактор Visual Basic.

  2. Дважды щелкните на Sheet1 (Лист1) в окне Project Explorer.

  3. Выберите рабочий лист из списка слева раскрывающегося списка. Выберите Изменить справа в раскрывающемся списке.

Worksheet Change Event in Excel VBA

Добавьте следующие строки коды к планшетному Change Event:

  1. Объявляет переменную с именем NewValue типа Integer и двух диапазонов (firstfourvalues ​​и lastfourvalues).

Dim newvalue As Integer, firstfourvalues As Range, lastfourvalues As Range
  1. Рабочий лист Change Event прослушивает все изменения на Лист1. Мы хотим только Excel VBA, чтобы сделать что-то, если что-то изменится в ячейке B3. Для достижения этой цели, добавьте следующую строку кода:

If Target.Address = "$B$3" Then
  1. Мы инициализации NewValue со значением ячейки B3, firstfourvalues ​​с Range ( «D3: D6») и lastfourvalues ​​с Range ( «D4: D7»).

newvalue = Range("B3").Value

Set firstfourvalues = Range("D3:D6")

Set lastfourvalues = Range("D4:D7")
  1. Теперь приходит простой трюк. Мы хотим, чтобы обновить таблицу скользящей средней. Вы можете добиться этого, заменив последние четыре значения с первых четырех значений таблицы и размещения новой стоимости акций в первой позиции.

lastfourvalues.Value = firstfourvalues.Value

Range("D3").Value = newvalue
  1. Не забудьте закрыть, если заявление.

End if
  1. И, наконец, ввести формулу = Average (D3: D7) в ячейку D8.

  2. Тестирование программы, нажав на кнопку команды.