Im Folgenden werden wir ein Programm in Excel VBA suchen, die im gleitenden Durchschnitt Tabelle erstellt. Platzieren Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie den folgenden Code Zeile:

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

Diese Codezeile tritt in eine Zufallszahl zwischen 0 und 100 in der Zelle B3. Wir wollen Excel VBA den neuen Bestandswert nehmen und sie an der ersten Position der gleitenden Durchschnitts-Tabelle. Alle anderen Werte sollten einen Platz nach unten und der letzte Wert sollte gestrichen werden.

Rolling Average Table in Excel VBA

Rolling Average Table in Excel VBA

Erstellen Sie ein Arbeitsblatt ändern Ereignis. Code auf das Arbeitsblatt ändern Ereignis hinzugefügt wird von Excel VBA ausgeführt werden, wenn Sie eine Zelle in einem Arbeitsblatt ändern.

  1. Öffnen Sie den Visual Basic-Editor.

  2. Klicken Sie doppelt auf Tabelle1 (Sheet1) im Projekt-Explorer.

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

Worksheet Change Event in Excel VBA

Fügen Sie die folgenden Codezeilen zu dem Arbeitsblatt ändern Veranstaltung:

  1. Deklarieren eine variable newvalue vom Typ Integer und zwei Bereiche (firstfourvalues ​​und lastfourvalues) genannt.

Dim newvalue As Integer, firstfourvalues As Range, lastfourvalues As Range
  1. Das Arbeitsblatt Änderungsereignis hört auf alle Veränderungen auf Sheet1. Wir wollen nur Excel VBA, etwas zu tun, wenn etwas in der Zelle B3 ändert. Um dies zu erreichen, fügen Sie die folgende Codezeile:

If Target.Address = "$B$3" Then
  1. Wir initialisieren newvalue mit dem Wert der Zelle B3, firstfourvalues ​​mit Range ( „D3: D6“) und lastfourvalues ​​mit Range ( „D4: D7“).

newvalue = Range("B3").Value

Set firstfourvalues = Range("D3:D6")

Set lastfourvalues = Range("D4:D7")
  1. Jetzt kommt der einfachen Trick. Wir wollen die Rollender-Durchschnitt-Tabelle aktualisieren. Sie können dies erreichen, indem sie die letzten vier Werte mit den ersten vier Werten der Tabelle zu ersetzen und den neuen Bestandswert an der ersten Position platzieren.

lastfourvalues.Value = firstfourvalues.Value

Range("D3").Value = newvalue
  1. Vergessen Sie nicht, die if-Anweisung zu schließen.

End if
  1. Schließlich geben Sie die Formel = MITTELWERT (D3: D7) in der Zelle D8.

  2. Testen Sie das Programm, indem Sie auf die Schaltfläche klicken.