/ / Media mobile in Excel VBA

Media mobile in Excel VBA

Di seguito vedremo un programma in Excel VBA che crea un tavolo medio rotabile. Inserire un pulsante di comando nel foglio di lavoro e aggiungere la seguente riga di codice:

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

Questa riga di codice immette un numero casuale compreso tra 0e 100 nella cella B3. VBA di Excel desidera prendere il nuovo valore di magazzino e posizionarlo nella prima posizione della tabella media mobile. Tutti gli altri valori dovrebbero spostarsi verso il basso di un luogo e l'ultimo valore dovrebbe essere eliminato.

Tabella media mobile in Excel VBA

Tabella media mobile in Excel VBA

Creare un evento di modifica del foglio di lavoro. Il codice aggiunto all'Evento di modifica del foglio di lavoro verrà eseguito da VBA di Excel quando si modifica una cella in un foglio di lavoro.

1. Aprire il Visual Basic Editor.

2. Fare doppio clic su Sheet1 (Sheet1) in Project Explorer.

3. Seleziona Foglio di lavoro dall'elenco a discesa a sinistra. Scegli Cambia dall'elenco a discesa a destra.

Evento di modifica del foglio di lavoro in VBA di Excel

Aggiungere le seguenti righe di codice all'evento di modifica del foglio di lavoro:

4. Dichiarare una variabile chiamata newvalue di tipo Integer e due intervalli (firstfourval e lastfourvalues).

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

5. L'Evento di modifica del foglio di lavoro ascolta tutte le modifiche su Sheet1. VBA di Excel deve fare qualcosa solo se qualcosa cambia nella cella B3. Per ottenere ciò, aggiungi la seguente riga di codice:

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

6. Inizializziamo newvalue con il valore della cella B3, firstfourvalues ​​con Range ("D3: D6") e lastfourvalues ​​con Range ("D4: D7").

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

7. Ora arriva il semplice trucco. Vogliamo aggiornare la tabella media mobile. È possibile ottenere ciò sostituendo gli ultimi quattro valori con i primi quattro valori della tabella e posizionando il nuovo valore di magazzino nella prima posizione.

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

8. Non dimenticare di chiudere la dichiarazione if.

End if

9. Infine, immettere la formula = MEDIA (D3: D7) nella cella D8.

10. Testare il programma facendo clic sul pulsante di comando.

Leggi anche: