|
|
|
Supreme Being
      
участник
Last Login: 23.06.2008 8:38
Сообщ.: 91,
Visits: 451
|
|
| Мой макрос проводит некоторую обработку ячеек, значения которых пользователь изменяет в процессе работы с документом(Excel). Такие ячейки легко отлавливаются событием SheetChange. К сожалению, событие не срабатывает при изменении ячейки с формулой, когда её значение меняется при автоматическом перерасчете формулы программой Excel. У объекта WorkSheet в Excel есть событие SheetCalculate. Оно действительно срабатывает при пересчете формулы в листе. Но, к сожалению, это событие не возвращает ячейку в которой произошел пересчет формулы. Подскажите, как вытащить эту самую ячейку. Может другим каким-нибудь событием?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 31.10.2007 14:52
Сообщ.: 127,
Visits: 1 233
|
|
| а не поможет свойство CALLER?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 23.06.2008 8:38
Сообщ.: 91,
Visits: 451
|
|
Gacol (15.05.2007) а не поможет свойство CALLER?Проверил. Не помогает.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 26.10.2007 9:10
Сообщ.: 166,
Visits: 1 538
|
|
| Сохраняй на отдельном листе ЗНАЧЕНИЯ формул с рабочего листа. При новых вычислениях сравнвай текущие значения формул с предварительно сохранёнными и увидишь, что изменилось. После анализа не забудь сохранить новые ЗНАЧЕНИЯ.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 31.10.2007 14:52
Сообщ.: 127,
Visits: 1 233
|
|
| Ну тогда другой вариант - через свойство Dependents (зависимые ячейки). В примере, если изменилась ячейка которая входит в формулу в рассматриваемой ячейки [C3], получаем сообщение. Private Sub Worksheet_Change(ByVal Target As Excel.Range) On Error GoTo err: r = Target.Dependents.Row c = Target.Dependents.Column MsgBox r & " : " & c Exit Sub err: On Error GoTo 0 End Sub
|
|
|
|
|
Supreme Being
      
участник
Last Login: 23.06.2008 8:38
Сообщ.: 91,
Visits: 451
|
|
Gacol (16.05.2007)
Ну тогда другой вариант - через свойство Dependents (зависимые ячейки). В примере, если изменилась ячейка которая входит в формулу в рассматриваемой ячейки [C3], получаем сообщение. Private Sub Worksheet_Change(ByVal Target As Excel.Range) On Error GoTo err: r = Target.Dependents.Row c = Target.Dependents.Column MsgBox r & " : " & c Exit Sub err: On Error GoTo 0 End Sub
То что нужно. Спасибо.
|
|
|
|