Celulă cumulativă (cumulativă)

Cuprins

Destul de des, apare o situație când trebuie să însumăm (acumulăm) mai multe valori introduse succesiv într-o singură celulă:

Acestea. dacă, de exemplu, introduceți numărul 1 în celula A5, atunci numărul 1 ar trebui să apară în B15. Dacă apoi introduceți numărul 1 în A7, atunci ar trebui să apară 1 în celula B22 și așa mai departe. În general, ceea ce contabilii (și nu numai ei) numesc un total cumulat.

Puteți implementa un astfel de acumulator de celule de stocare folosind o macrocomandă simplă. Faceți clic dreapta pe fila foaie în care se află celulele A1 și B1 și selectați din meniul contextual Text sursă (Cod sursa). În fereastra editorului Visual Basic care se deschide, copiați și inserați codul macro simplu:

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

Adresele celulelor A1 și A2, desigur, pot fi înlocuite cu ale dvs.

Dacă trebuie să urmăriți introducerea datelor și să rezumați nu celule individuale, ci intervale întregi, atunci macrocomanda va trebui să fie ușor modificată:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Not Intersect(Target, Range("A1:A10")) Este Nimic Atunci Dacă IsNumeric(Target.Value) Apoi Application.EnableEvents = False Target.Offset(0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Se presupune că datele sunt introduse în celulele din intervalul A1:A10, iar numerele introduse sunt însumate în coloana adiacentă din dreapta. Dacă în cazul dvs. nu este adiacent, atunci creșteți deplasarea la dreapta în operatorul Offset - înlocuiți 1 cu un număr mai mare.

  • Ce sunt macrocomenzile, unde să inserați codul macro în VBA, cum să le folosiți?

Lasă un comentariu