/ / Rullande medelvärde i Excel VBA

Rullande medelvärde i Excel VBA

Nedan ser vi på ett program i Excel VBA som skapar en rullande medel tabell. Placera en kommandoknapp på ditt arbetsblad och lägg till följande kodrad:

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

Denna kodrad går in i ett slumptal mellan 0och 100 i cell B3. Vi vill att Excel VBA ska ta det nya lagervärdet och placera det i den första positionen för rullande medelvärdet. Alla andra värden bör flyttas ner en plats och det sista värdet ska raderas.

Rolling Average Table i Excel VBA

Rolling Average Table i Excel VBA

Skapa ett arbetsbladbyteshändelse. Kod som läggs till i arbetsbladets ändringshändelse kommer att köras av Excel VBA när du byter en cell i ett kalkylblad.

1. Öppna Visual Basic Editor.

2. Dubbelklicka på Sheet1 (Sheet1) i Project Explorer.

3. Välj Arbetsblad från den vänstra rullgardinsmenyn. Välj Ändra från den högra rullgardinsmenyn.

Arbetsblad Ändra händelse i Excel VBA

Lägg till följande kodlinjer till arbetsbladets ändringshändelse:

4. Förklara en variabel som heter newvalue av typen Integer och två intervall (firstfourvalues ​​och lastfourvalues).

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

5. Arbetsbladbyteshändelsen lyssnar på alla ändringar på Sheet1. Vi vill bara att Excel VBA ska göra något om något ändras i cell B3. För att uppnå detta lägger du till följande kodrad:

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

6. Vi initierar nyvärdet med värdet av cell B3, förstafyravärden med Range ("D3: D6") och lastfourvalues ​​med Range ("D4: D7").

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

7. Nu kommer det enkla tricket. Vi vill uppdatera rullande genomsnittstabellen. Du kan uppnå detta genom att ersätta de fyra sista värdena med de fyra första värdena på bordet och placera det nya lagervärdet vid första positionen.

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

8. Glöm inte att stänga if-förklaringen.

End if

9. Ange slutligen formeln = AVERAGE (D3: D7) i cell D8.

10. Testa programmet genom att klicka på kommandoknappen.

Läs också: