Kaupiamoji ląstelė (kaupiamoji)

Turinys

Gana dažnai susidaro situacija, kai reikia susumuoti (sukaupti) kelias reikšmes, nuosekliai įvestas į vieną langelį:

Tie. jei, pavyzdžiui, įvesite skaičių 1 langelyje A5, tada skaičius 1 turėtų būti rodomas B15. Jei įvesite skaičių 1 į A7, tada langelyje B1 turėtų pasirodyti 22 ir pan. Apskritai, ką buhalteriai (ir ne tik jie) vadina kaupiamąja suma.

Tokį saugojimo elementą-akumuliatorių galite įdiegti naudodami paprastą makrokomandą. Dešiniuoju pelės mygtuku spustelėkite lapo skirtuką, kuriame yra langeliai A1 ir B1, ir pasirinkite kontekstiniame meniu Šaltinio tekstas (Pirminis kodas). Atsidariusiame Visual Basic redaktoriaus lange nukopijuokite ir įklijuokite paprastą makrokomandos kodą:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Address(False, False) = "A1" Then If IsNumeric(.Value) Tada Application.EnableEvents = False Range("A2").Value = Range(" A2").Value + .Value Application.EnableEvents = True End If End If End with End Sub  

Ląstelių A1 ir A2 adresus, žinoma, galima pakeisti savo.

Jei reikia sekti duomenų įvedimą ir apibendrinti ne atskirus langelius, o visus diapazonus, makrokomandą reikės šiek tiek pakeisti:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) Jei nesikerta(tikslas, diapazonas("A1:A10")) yra nieko, tada jei yra skaičius(tikslinė.vertė) tada Application.EnableEvents = klaidingas tikslinis poslinkis(0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Daroma prielaida, kad duomenys įvedami į diapazono A1:A10 langelius, o įvesti skaičiai sumuojami gretimame dešiniajame stulpelyje. Jei jūsų atveju jis nėra greta, padidinkite poslinkį į dešinę operatoriuje Offset – pakeiskite 1 didesniu skaičiumi.

  • Kas yra makrokomandos, kur įterpti makrokomandos kodą VBA, kaip jas naudoti?

Palikti atsakymą