/ / Rolling Average v Excel VBA

Rolovací priemer v programe Excel VBA

Nižšie sa pozrieme na program v sekcii Excel VBA ktorý vytvorí Tabuľka priebežného priemeru, Na pracovný hárok umiestnite príkazové tlačidlo a pridajte nasledujúci riadok kódu:

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

Tento riadkový riadok zadá náhodné číslo medzi 0a 100 do bunky B3. Chceme, aby aplikácia Excel VBA prevzala novú hodnotu zásob a umiestnila ju na prvú pozíciu tabuľky s priebežným priemerom. Všetky ostatné hodnoty by sa mali posunúť na jedno miesto a posledná hodnota by sa mala vymazať.

Tabuľka valcovacích priemerov v programe Excel VBA

Tabuľka valcovacích priemerov v programe Excel VBA

Vytvorte udalosť zmeny pracovného hárka. Kód, ktorý bol pridaný k udalosti zmeny pracovného hárka, bude vykonaný programom Excel VBA pri zmene bunky na pracovnom hárku.

1. Otvorte Editor jazyka.

2. Dvakrát kliknite na Sheet1 (Sheet1) v Project Explorer.

3. V ľavom rozbaľovacom zozname vyberte položku Pracovný hárok. Vyberte položku Zmeniť v pravom rozbaľovacom zozname.

Zmeniť udalosť pracovného hárka v programe Excel VBA

Pridajte nasledujúce riadky kódu do udalosti zmeny pracovného hárka:

4. Deklarujte premennú nazvanú newvalue typu Integer a dva rozsahy (prvé hodnoty a posledné hodnoty).

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

5. Udalosť zmeny pracovného hárku počúva všetky zmeny v hárku 1. Chceme, aby program Excel VBA urobil niečo, ak sa niečo zmení v bunke B3. Ak to chcete dosiahnuť, pridajte nasledujúci riadok kódu:

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

6. Inicializujeme novú hodnotu s hodnotou bunky B3, prvými hodnotami s rozsahom ("D3: D6") a poslednými hodnotami s rozsahom ("D4: D7").

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

7. Teraz prichádza jednoduchý trik. Chceme aktualizovať tabuľku priebežného priemeru. Môžete to dosiahnuť nahradením posledných štyroch hodnôt prvými štyrmi hodnotami tabuľky a umiestnením novej hodnoty zásob na prvej pozícii.

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

8. Nezabudnite zatvoriť vyhlásenie if.

End if

9. Nakoniec zadajte vzorec = AVERAGE (D3: D7) do bunky D8.

10. Otestujte program kliknutím na príkazové tlačidlo.

Tiež si prečítajte: