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:
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.
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.
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).
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:
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").
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.
Range("D3").Value = newvalue
8. Vergessen Sie nicht, die if-Anweisung zu schließen.
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.