Kumulatiivne rakk (kumulatiivne)

Sisu

Üsna sageli tekib olukord, kus peame kokku võtma (koguma) mitu väärtust, mis on järjestikku sisestatud ühte lahtrisse:

Need. kui näiteks sisestate lahtrisse A1 numbri 5, siis peaks number 1 ilmuma lahtrisse B15. Kui sisestate seejärel lahtrisse A1 numbri 7, peaks lahtrisse B1 ilmuma 22 ja nii edasi. Üldiselt, mida raamatupidajad (ja mitte ainult nemad) nimetavad kumulatiivseks kogusummaks.

Sellise salvestuselemendi akumulaatori saate rakendada lihtsa makro abil. Paremklõpsake lehe vahekaarti, kus asuvad lahtrid A1 ja B1, ja valige kontekstimenüüst Lähtetekst (Lähtekood). Kopeerige ja kleepige avanevas Visual Basicu redaktori aknas lihtne makrokood.

Private Sub Worksheet_Change(ByVal Target As Excel.Range) Sihtmärgiga If .Address(False, False) = "A1" Then If IsNumeric(.Value) then Application.EnableEvents = False Range("A2").Väärtus = Vahemik(" A2").Väärtus + .Value Application.EnableEvents = Tõeline lõpp, kui lõpp, kui lõpp  

Lahtrite A1 ja A2 aadressid saab loomulikult asendada enda omadega.

Kui teil on vaja andmete sisestamist jälgida ja mitte üksikuid lahtreid, vaid terveid vahemikke kokku võtta, tuleb makrot veidi muuta:

Private Sub Worksheet_Change(ByVal Target as Excel.Range) Kui ei lõiku(sihtmärk, vahemik("A1:A10")) ei ole midagi, siis kui on number(sihtväärtus) siis Application.EnableEvents = False Target.Offset(0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Eeldatakse, et andmed sisestatakse vahemiku A1:A10 lahtritesse ja sisestatud numbrid summeeritakse paremal kõrval asuvas veerus. Kui teie puhul see ei ole külgnev, suurendage nihkeoperaatoris Offset nihet paremale – asendage 1 suurema arvuga.

  • Mis on makrod, kuhu VBA-s makrokoodi sisestada, kuidas neid kasutada?

Jäta vastus