/ / Media rulantă în Excel VBA

Media rulantă în Excel VBA

Mai jos ne vom uita la un program în Excel VBA care creează o media tabelului mediu. Plasați un buton de comandă pe foaia dvs. de lucru și adăugați următoarea linie de cod:

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

Această linie de cod introduce un număr aleator între 0și 100 în celula B3. Vrem ca Excel VBA să preia noua valoare a stocului și să o plaseze la prima poziție a tabelului cu medii mobile. Toate celelalte valori ar trebui să se deplaseze într-un singur loc, iar ultima valoare să fie ștearsă.

Tabel cu medii de rulare în Excel VBA

Tabel cu medii de rulare în Excel VBA

Creați un eveniment de schimbare a foii de lucru. Codul adăugat la evenimentul schimbare foaia de lucru va fi executat de Excel VBA atunci când modificați o celulă pe o foaie de lucru.

1. Deschideți Editorul Visual Basic.

2. Faceți dublu clic pe Sheet1 (Sheet1) în Project Explorer.

3. Selectați foaia de lucru din lista verticală din stânga. Alegeți Schimbare din lista derulantă din dreapta.

Schimbarea evenimentelor în Excel VBA

Adăugați următoarele linii de cod la Evenimentul de schimbare a foii de lucru:

4. Declasați o variabilă denumită newvalue de tip Integer și două intervale (primele valori și ultimele valori).

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

5. Evenimentul de schimbare a foii de lucru ascultă toate modificările din fila1. Vrem doar Excel VBA să facă ceva dacă se schimbă ceva în celula B3. Pentru a realiza acest lucru, adăugați următoarea linie de cod:

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

6. Inițializăm noua valoare cu valoarea celulei B3, valorile prime cu interval ("D3: D6") și ultimele valori cu interval ("D4: D7").

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

7. Acum vine trucul simplu. Vrem să actualizăm tabelul mediei rulante. Puteți realiza acest lucru prin înlocuirea ultimelor patru valori cu primele patru valori ale tabelului și plasarea noii valori stoc în prima poziție.

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

8. Nu uitați să închideți declarația if.

End if

9. În final introduceți formula = AVERAGE (D3: D7) în celula D8.

10. Testați programul făcând clic pe butonul de comandă.

De asemenea, citiți: