/ / Rolling Average az Excel VBA-ban

Rolling Average az Excel VBA-ban

Az alábbiakban egy programot nézünk be Excel VBA amely létrehozza a gördülő átlag táblázat. Helyezzen egy parancsgombot a munkalapra, és adja hozzá a következő kódot:

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

Ez a kódsor véletlenszerű számot ad 0és 100 a B3 sejtbe. Azt akarjuk, hogy az Excel VBA vegye fel az új készletértéket, és helyezze el a gördülő átlag táblázat első helyére. Minden más értéknek egy helyen le kell mennie, és az utolsó értéket törölni kell.

Rolling Average Table az Excel VBA-ban

Rolling Average Table az Excel VBA-ban

Munkafüzet-változási esemény létrehozása. A Munkalap változás eseményhez hozzáadott kódot az Excel VBA hajtja végre, amikor egy munkalapon lévő cellát módosít.

1. Nyissa meg a Visual Basic Editor alkalmazást.

2. Kattintson duplán a Sheet1 (Sheet1) lapra a Project Explorerben.

3. A bal oldali legördülő listából válassza ki a Munkalapot. Válassza a Módosítás lehetőséget a megfelelő legördülő listából.

Munkalap Változás esemény Excel VBA-ban

Adja hozzá a következő kódsorokat a Munkalap változás eseményhez:

4. Mondja ki az Integer értékű új értékű változót és a két tartományt (firstfourvalues ​​és lastfourvalues).

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

5. A Munkalap módosítása esemény figyeli az 1. lap összes módosítását. Csak azt szeretnénk, hogy az Excel VBA csináljon valamit, ha valami megváltozik a B3 cellában. Ehhez a következő kódsor hozzáadásához:

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

6. Inicializáljuk az új értéket a B3 cellával, a Range ("D3: D6") és az utolsó értékek tartományával ("D4: D7").

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

7. Most jön az egyszerű trükk. Szeretnénk frissíteni a gördülő átlag táblázatot. Ezt úgy érhetjük el, hogy az utolsó négy értéket a táblázat első négy értékével kicseréljük és az új állomány értékét az első pozícióba helyezzük.

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

8. Ne felejtsd el bezárni a nyilatkozatot.

End if

9. Végül adja meg a képletet = AVERAGE (D3: D7) a D8 cellába.

10. Vizsgálja meg a programot a parancsgombra kattintással.

Szintén olvasható: