/ / Rolling Average in Excel VBA

Rolling Average in Excel VBA

Hieronder zullen we een programma bekijken in Excel VBA dat creëert een rollende gemiddelde tafel. Plaats een opdrachtknop op uw werkblad en voeg de volgende coderegel toe:

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

Deze coderegel voert een willekeurig getal tussen 0 inen 100 in cel B3. We willen dat Excel VBA de nieuwe voorraadwaarde neemt en deze plaatst op de eerste positie van de voortschrijdende gemiddelde tabel. Alle andere waarden moeten één plaats naar beneden worden verplaatst en de laatste waarde moet worden verwijderd.

Rolling Average Table in Excel VBA

Rolling Average Table in Excel VBA

Maak een werkblad wijzigingsgebeurtenis. Code die wordt toegevoegd aan het werkblad Wijzigingsgebeurtenis wordt uitgevoerd door Excel VBA wanneer u een cel in een werkblad wijzigt.

1. Open de Visual Basic-editor.

2. Dubbelklik op Blad1 (Blad1) in de Projectverkenner.

3. Kies Worksheet in de vervolgkeuzelijst links. Kies Wijzigen in de rechter vervolgkeuzelijst.

Werkblad Wijzigingsgebeurtenis in Excel VBA

Voeg de volgende coderegels toe aan het werkblad Wijzigingsgebeurtenis:

4. Declareer een variabele met de naam newvalue van het type Integer en two ranges (firstfour values ​​and lastfourvalues).

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

5. Het werkblad Wijzigingsevent luistert naar alle wijzigingen op Blad1. We willen alleen dat Excel VBA iets doet als er iets verandert in cel B3. Voeg hiervoor de volgende coderegel toe:

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

6. We initialiseren nieuwe waarden met de waarde van cel B3, eerste vier waarden met bereik ("D3: D6") en laatste vier waarden met bereik ("D4: D7").

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

7. Nu komt de eenvoudige truc. We willen de voortschrijdende gemiddelde tafel bijwerken. U kunt dit bereiken door de laatste vier waarden te vervangen door de eerste vier waarden van de tabel en door de nieuwe voorraadwaarde op de eerste positie te plaatsen.

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

8. Vergeet niet om de if-verklaring te sluiten.

End if

9. Voer ten slotte de formule = GEMIDDELDE (D3: D7) in cel D8 in.

10. Test het programma door op de opdrachtknop te klikken.

Lees ook: