Событие изменения рабочего листа Excel не срабатывает, если ячейка не изменена вручную

#excel #vba

Вопрос:

У меня есть лист excel, который периодически обновляет ячейку » B » ценой биткоина из Интернета (Powerquery). Идея заключается в том, что, когда ячейка обновляется с новой ценой, я должен взять новую цену и сохранить ее в другой ячейке, «G». Затем снова дождитесь изменения цены в ячейке «B», чтобы сохранить ее в новой пустой ячейке. Я создал код worksheet_change, который обнаруживает изменения в ячейке » B » и сохраняет изменения в другом столбце. Но это работает только тогда, когда ячейка » А » изменяется вручную, а не при обновлении из Интернета. Как я могу заставить его работать даже для обновлений из Интернета? Код выглядит следующим образом:

 `Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Range("B2").Address Then

              
Call Update_Price

End If


End Sub



Private Sub Update_Price()


Range("G1").End(xlDown).Offset(1).Select

ActiveCell = Cells(2, 2)


End Sub`
 

Комментарии:

1. Является ли B2 формулой? Если это так, то вам нужно будет использовать событие worksheet_calculate.

2. B2-ЭТО НЕ ФОРМУЛА, А СКОРЕЕ ССЫЛКА НА ВЕБ-САЙТ ЧЕРЕЗ POWERQUERY

3. @ScottCraner worksheet_calculate сработал, спасибо.