/ / Rolling Average i Excel VBA

Rullende gennemsnit i Excel VBA

Nedenfor vil vi se på et program i Excel VBA der skaber en rullende gennemsnitstabel. Placer en kommandoknap på dit regneark og tilføj følgende kodelinje:

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

Denne kode linje indtaster et tilfældigt tal mellem 0og 100 ind i celle B3. Vi vil have Excel VBA til at tage den nye lagerværdi og placere den på den første position i rullende gennemsnitsbordet. Alle andre værdier skal flyttes ned ét sted, og den sidste værdi skal slettes.

Rolling Average Table i Excel VBA

Rolling Average Table i Excel VBA

Opret et regnearkændringsbegivenhed. Kode føjet til regnearkets ændringshændelse udføres af Excel VBA, når du ændrer en celle på et regneark.

1. Åbn Visual Basic Editor.

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

3. Vælg Arbejdsark fra den venstre rullemenu. Vælg Skift fra den højre rulleliste.

Arbejdsark Skift begivenhed i Excel VBA

Tilføj følgende kodelinjer til regnearkets ændringshændelse:

4. Erklær en variabel kaldet newvalue af typen Integer og to intervaller (firstfourvalues ​​og lastfourvalues).

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

5. Regnearkets ændringshændelse lytter til alle ændringer på ark1. Vi vil kun have Excel VBA til at gøre noget, hvis noget ændrer sig i celle B3. For at opnå dette skal du tilføje følgende kode linje:

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

6. Vi initialiserer ny værdi med værdien af ​​celle B3, førsteværdier med Range ("D3: D6") og lastfourvalues ​​med Range ("D4: D7").

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

7. Nu kommer det simple trick. Vi ønsker at opdatere rullende gennemsnitstabellen. Du kan opnå dette ved at erstatte de sidste fire værdier med de første fire værdier af tabellen og placere den nye lagerværdi i første position.

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

8. Glem ikke at lukke if-erklæringen.

End if

9. Indtast endelig formlen = AVERAGE (D3: D7) i celle D8.

10. Test programmet ved at klikke på kommandoknappen.

Læs også: