Здравствуйте. Прошу посоветовать по следующему вопросу: не удаётся считать (1, 2, 3, 4, 5...) количество выполнения условия в ячейке.
Итак, в ячейке A1 согласно заданной формуле (то есть не вводом вручную, а в фоновом режиме) появляются различные значения. Нужно, чтобы при каждом появлении в этой ячейке значения "Взлёт", значение в другой ячейке B1, начиная с 1, изменялось на один порядковый номер (то есть становилось 2, 3, 4, 5, 6 и т. д.)
1. Пытался найти решение, перебирая всевозможные формулы, но выдаётся ошибка о циклической ссылке.
2.1. Пытался решить задачу макросом (привожу ниже), но в этом случае при наступлении в ячейке А1 ожидаемого события, значение в ячейке B1 увеличивается на единицу (то есть текущее значение + 1) не один раз, а бесконечное количество...
2.2. Пробовал этот же макрос, но уже с Worksheet_Change(ByVal Target As Range), однако такое решение тоже не работает, так как ячейка A1 изменяется не вручную, а автоматически с помощью формулы с условием ЕСЛИ().
Таким образом, получается, что: Worksheet_Change(ByVal Target As Range) не видит изменений в ячейке А1, а Worksheet_Calculate() их видит, но начинает увеличивать счётчик в ячейке B1 до бесконечности (к сожалению, Application.EnableEvents = False почему-то не спасает от бесконечного исполнения макроса).
Возможно ли решить задачу?
Итак, в ячейке A1 согласно заданной формуле (то есть не вводом вручную, а в фоновом режиме) появляются различные значения. Нужно, чтобы при каждом появлении в этой ячейке значения "Взлёт", значение в другой ячейке B1, начиная с 1, изменялось на один порядковый номер (то есть становилось 2, 3, 4, 5, 6 и т. д.)
1. Пытался найти решение, перебирая всевозможные формулы, но выдаётся ошибка о циклической ссылке.
2.1. Пытался решить задачу макросом (привожу ниже), но в этом случае при наступлении в ячейке А1 ожидаемого события, значение в ячейке B1 увеличивается на единицу (то есть текущее значение + 1) не один раз, а бесконечное количество...
Код |
---|
Private Sub Worksheet_Calculate() If [A1] = "Взлёт" Then Call Vzlet_counter End Sub Sub Vzlet_counter() Application.EnableEvents = False Range("B1")= Range("B1") + 1 Application.EnableEvents = True End Sub |
Таким образом, получается, что: Worksheet_Change(ByVal Target As Range) не видит изменений в ячейке А1, а Worksheet_Calculate() их видит, но начинает увеличивать счётчик в ячейке B1 до бесконечности (к сожалению, Application.EnableEvents = False почему-то не спасает от бесконечного исполнения макроса).
Возможно ли решить задачу?