/ / Rolling Average w Excel VBA

Średnia krocząca w Excelu VBA

Poniżej przyjrzymy się programowi w Excel VBA który tworzy krocząca średnia tabela. Umieść przycisk polecenia w arkuszu i dodaj następującą linię kodu:

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

Ta linia kodu wprowadza losową liczbę od 0i 100 do komórki B3. Chcemy, aby Excel VBA wziął nową wartość akcji i umieścił ją na pierwszej pozycji w ruchomej tabeli średniej. Wszystkie inne wartości powinny przesunąć się o jedno miejsce, a ostatnia wartość powinna zostać usunięta.

Rolling Average Table w Excel VBA

Rolling Average Table w Excel VBA

Utwórz zdarzenie zmiany arkusza roboczego. Kod dodany do zdarzenia zmiany arkusza roboczego zostanie wykonany przez Excel VBA po zmianie komórki w arkuszu.

1. Otwórz Edytor Visual Basic.

2. Kliknij dwukrotnie Arkusz1 (Arkusz1) w Eksploratorze projektu.

3. Wybierz Arkusz roboczy z lewej listy rozwijanej. Wybierz Zmień z prawej listy rozwijanej.

Arkusz Zmień wydarzenie w programie Excel VBA

Dodaj następujące wiersze kodu do zdarzenia zmiany arkusza roboczego:

4. Zadeklaruj zmienną o nazwie nowa wartość typu Integer i dwa zakresy (pierwsze wartości i lastfour wartości).

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

5. Zdarzenie Zmień arkusz roboczy nasłuchuje wszystkich zmian w Arkusz1. Chcemy, aby Excel VBA coś zrobił, jeśli coś zmieni się w komórce B3. Aby to osiągnąć, dodaj następującą linię kodu:

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

6. Inicjujemy nową wartość z wartością komórki B3, pierwszej wartości z Range ("D3: D6") i ostatnimi wartościami z Range ("D4: D7").

newvalue = Range("B3").Value
Set firstfourvalues = Range("D3:D6")
Set lastfourvalues = Range("D4:D7")

7. Teraz przychodzi prosta sztuczka. Chcemy zaktualizować średnią kroczącą tabelę. Można to osiągnąć, zastępując cztery ostatnie wartości pierwszymi czterema wartościami tabeli i umieszczając nową wartość zapasów na pierwszej pozycji.

lastfourvalues.Value = firstfourvalues.Value
Range("D3").Value = newvalue

8. Nie zapomnij zamknąć instrukcji if.

End if

9. Na koniec wprowadź formułę = ŚREDNIA (D3: D7) do komórki D8.

10. Przetestuj program, klikając przycisk polecenia.

Przeczytaj również: