Кумулятыўная ячэйка (кумулятыўная)

змест

Даволі часта ўзнікае сітуацыя, калі нам неабходна прасумаваць (назапасіць) некалькі значэнняў, паслядоўна занесеных у адну вочка:

Тыя. калі, напрыклад, вы ўводзіце лічбу 1 у ячэйку A5, то лічба 1 павінна з'явіцца ў B15. Калі вы затым увядзеце лічбу 1 у A7, то 1 павінна з'явіцца ў ячэйцы B22 і гэтак далей. Увогуле, тое, што бухгалтары (і не толькі) называюць нарастаючым вынікам.

Рэалізаваць такі назапашвальнік-акумулятар можна з дапамогай простага макраса. Пстрыкніце правай кнопкай мышы на ўкладцы ліста, дзе знаходзяцца ячэйкі A1 і B1, і абярыце з кантэкстнага меню Зыходны тэкст (Зыходны код). У якое адкрылася акне рэдактара Visual Basic скапіруйце і ўстаўце просты код макраса:

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  

Адрасы вочак А1 і А2, зразумела, можна замяніць сваімі.

Калі трэба адсочваць ўвод дадзеных і сумаваць не асобныя вочкі, а цэлыя дыяпазоны, то макрас прыйдзецца трохі змяніць:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Not Intersect(Target, Range("A1:A10")) Is Nothing Then If IsNumeric(Target.Value) Then Application.EnableEvents = False Target.Offset(0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Мяркуецца, што дадзеныя ўводзяцца ў ячэйкі дыяпазону A1:A10, а ўведзеныя лічбы падсумоўваюцца ў суседнім слупку справа. Калі ў вашым выпадку ён не суседні, то павялічце зрух направа ў аператары Offset – заменіце 1 на большы лік.

  • Што такое макрасы, куды ўставіць код макрасаў у VBA, як імі карыстацца?

Пакінуць каментар