/ / Riedėjimo vidurkis Excel VBA

"Rolling Average" programoje "Excel VBA"

Žemiau apžvelgsime programą Excel VBA tai sukuria riedėjimo vidurkis lentelėje. Įdėkite komandų mygtuką į savo darbalapį ir pridėkite šią kodo eilutę:

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

Ši kodinė eilutė įveda atsitiktinį skaičių tarp 0ir 100 į ląstelę B3. Norime, kad "Excel VBA" pritrauktų naują vertę ir padėtume pirmajame riedėjimo viduryje lentelėje. Visos kitos vertes turėtų judėti žemyn vienoje vietoje, o paskutinė reikšmė turėtų būti ištrinta.

"Rolling Average" lentelė "Excel VBA"

"Rolling Average" lentelė "Excel VBA"

Sukurkite darbo lapo keitimo įvykį. Kodą, pridėtą prie darbų sąrašo pakeitimo įvykio, atliks "Excel VBA", kai pakeisite ląstelę darbalapyje.

1. Atidarykite "Visual Basic" redaktorių.

2. Dukart spustelėkite Sheet1 (Sheet1) "Project Explorer".

3. Iš kairės išskleidžiamojo sąrašo pasirinkite Darbo lapą. Iš dešinės išskleidžiamojo sąrašo pasirinkite Keisti.

Darbalaukio keitimo įvykis programoje "Excel VBA"

Į darbų sąrašo keitimo įvykį pridėkite šias kodo eilutes:

4. Paskelbkite kintamąjį, pavadintą naujo tipo "Integer" reikšme ir dviejų intervalų (pirmųjų ir paskutiniųjų reikšmių).

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

5. Darbų sąrašo keitimo įvykis išklauso visus pakeitimus lape1. Mes tik norime, kad "Excel VBA" atliktų kažką, jei kažkas pasikeistų ląstelėje B3. Norėdami tai pasiekti, pridėkite šią kodo eilutę:

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

6. Mes inicijuojame naują vertę su ląstelės B3 reikšme, pirmosios reikšmės su Range ("D3: D6") ir lastfourvalues ​​su Range ("D4: D7").

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

7. Dabar ateina paprastas triukas. Mes norime atnaujinti riedančio vidurkio lentelę. Tai galite pasiekti pakeisdami paskutines keturias reikšmes pirmosiomis keturiomis lentelės reikšmėmis ir pateikdami naują vertę pirmoje pozicijoje.

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

8. Nepamirškite uždaryti "if" teiginio.

End if

9. Galiausiai įveskite formulę = VIDUTINIS (D3: D7) į ląstelę D8.

10. Patikrinkite programą spustelėdami komandų mygtuką.

Taip pat perskaitykite: