/ / Rollender Durchschnitt in Excel VBA

Rollender Durchschnitt in Excel VBA

Unten sehen wir uns ein Programm in Excel VBA das schafft ein rollende Durchschnittstabelle. Fügen Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt ein, und fügen Sie die folgende Codezeile hinzu:

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

Diese Codezeile gibt eine Zufallszahl zwischen 0 einund 100 in Zelle B3. Wir möchten, dass Excel VBA den neuen Bestandswert annimmt und an die erste Position der gleitenden Durchschnittstabelle platziert. Alle anderen Werte sollten sich um eine Stelle nach unten bewegen und der letzte Wert sollte gelöscht werden.

Rolling Average Tabelle in Excel VBA

Rolling Average Tabelle in Excel VBA

Erstellen Sie ein Arbeitsblattänderungsereignis. Code, der dem Worksheet Change Event hinzugefügt wird, wird von Excel VBA ausgeführt, wenn Sie eine Zelle in einem Arbeitsblatt ändern.

1. Öffnen Sie den Visual Basic-Editor.

2. Doppelklicken Sie im Projekt-Explorer auf Tabelle1 (Tabelle1).

3. Wählen Sie Arbeitsblatt aus der linken Dropdown-Liste. Wählen Sie Ändern aus der rechten Dropdown-Liste.

Arbeitsblatt Change Event in Excel VBA

Fügen Sie dem Worksheet Change Event die folgenden Codezeilen hinzu:

4. Deklarieren Sie eine Variable newvalue vom Typ Integer und zwei Bereiche (firstfourvalues ​​und lastfourvalues).

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

5. Das Worksheet Change Event überwacht alle Änderungen in Sheet1. Wir wollen nur Excel VBA etwas tun, wenn sich in Zelle B3 etwas ändert. Fügen Sie dazu die folgende Codezeile hinzu:

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

6. Wir initialisieren den neuen Wert mit dem Wert der Zelle B3, die ersten vier Werte mit dem Bereich ("D3: D6") und die letzten vier Werte mit dem Bereich ("D4: D7").

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

7. Jetzt kommt der einfache Trick. Wir möchten die rollierende Durchschnittstabelle aktualisieren. Sie können dies erreichen, indem Sie die letzten vier Werte durch die ersten vier Werte der Tabelle ersetzen und den neuen Bestandswert an der ersten Position platzieren.

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

8. Vergessen Sie nicht, die if-Anweisung zu schließen.

End if

9. Geben Sie abschließend die Formel = AVERAGE (D3: D7) in die Zelle D8 ein.

10. Testen Sie das Programm, indem Sie auf die Befehlsschaltfläche klicken.

Lesen Sie auch: