Накопительная ячейка (накопительная)

Содержание:

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

Те. если, например, вы введете число 1 в ячейку А5, то число 1 должно появиться в В15. Если вы затем введете число 1 в A7, то 1 должна появиться в ячейке B22 и так далее. В общем, то, что бухгалтеры (и не только они) называют нарастающим итогом.

Реализовать такую ​​ячейку-аккумулятор можно с помощью простого макроса. Щелкните правой кнопкой мыши вкладку листа, где расположены ячейки A1 и B1, и выберите в контекстном меню Исходный текст (Исходный код). В открывшемся окне редактора Visual Basic скопируйте и вставьте простой код макроса:

Private Sub Worksheet_Change(Цель ByVal As Excel.Range) С целью If .Address(False, False) = "A1" Тогда If IsNumeric(.Value) Тогда 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 As Excel.Range) Если не пересекается(Target, Range("A1:A10")) Ничего, Тогда Если IsNumeric(Target.Value) Тогда Application.EnableEvents = False Target.Offset(0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Предполагается, что данные вводятся в ячейки диапазона А1:А10, а введенные числа суммируются в соседнем столбце справа. Если в вашем случае он не является соседним, то увеличьте сдвиг вправо в операторе «Смещение» — замените 1 на большее число.

  • Что такое макросы, куда вставлять код макроса в VBA, как их использовать?

Оставьте комментарий