Запускать макрос, когда ячейка программно изменяется - PullRequest
0 голосов
/ 23 июня 2011

Я фильтрую данные в Excel из внешнего финансового программного обеспечения. Он работает в режиме реального времени, и я хочу, чтобы, когда, скажем, ячейка B4 изменялась программно в реальном времени финансовым программным обеспечением, которое будет запускать Macro 1. Следует помнить о нескольких проблемах: данные в реальном времени могут изменяться в миллисекундах.

Если это невозможно, то в качестве резервной копии я хотел бы иметь возможность копировать и вставлять эту ячейку B4 каждый раз, когда она меняет на B10, а затем, когда она меняется снова, вводить новое значение в B10 и иметь старое значение в B10 перейдите к B11, затем, когда B4 снова изменится, скопируйте это значение в B10 и сдвиньте предыдущие два значения вниз, чтобы новейшие данные всегда были в B10.

Ответы [ 2 ]

3 голосов
/ 23 июня 2011

Установите событие onWorksheet_Change, оно должно запускаться при каждом изменении рабочего листа.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$4" Then

    'Place appropriate code here

    End If
End Sub

Я не знаю, что произойдет, если во время его работы произойдет другое обновление.

0 голосов
/ 23 июня 2011

Если значение вашей ячейки меняется каждую миллисекунду, у вас могут возникнуть проблемы с производительностью (или циклы) с макросом событий vba, как показал Крейг Т.

Возможно, вам следует добавить некоторые проверки частоты обновления и, если вам нужночтобы отключить событие vba, используйте:

Application.EnableEvents = False
' Coding to skip these events
Application.EnableEvents = True

С уважением,

Макс

...