Workbook_SheetChange и DDE не работает

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
almas
Сообщения: 3
Зарегистрирован: 18 май 2010, 22:36

Уважаемые Гуру! Подскажите, пожалуйста, как работает Workbook_SheetChange?
при изменении ячеек из другой программы по DDE необходимо запустить процедуру, которая должна обработать ряд других ячеек и изменить их.
Я так понимаю пользовательская функция здесь работать не будет, так как меняется окружение Excel.
Workbook_SheetChange работает когда я меняю руками значения ячеек(или просто на них Enter жму), а когда по DDE обновляются ячейки - не срабатывает событие Workbook_SheetChange. Попробовал динамический импорт из файла - так там меняется/не меняется значение - все равно заходит в SheetChange (впрочем, тоже, что и Enter жмешь на ячейке).
Может, подскажете какое-нибудь другое решение?
Задача следующая:
Изменилась ячейка по DDE-> проверилось куча условий -> изменились ряд других ячеек
Или все-таки что-то другое использовать для написания проги (громко сказано :) , а Excel использовать только как приемник DDE?
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

Я в таких случаях использую событие Workbook_SheetCalculate (или Worksheet_Calculate)

Чтобы оно срабатывало при получении данных по DDE, в любую ненужную ячейку пишем любую формулу, ссылающуюся на диапазон с данными DDE.
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
almas
Сообщения: 3
Зарегистрирован: 18 май 2010, 22:36

Точно. Чёт я не сообразил раньше это событие использовать :( . Спасибо. Сегодня попробую.
almas
Сообщения: 3
Зарегистрирован: 18 май 2010, 22:36

А если несколько ячеек необходимо отслеживать? Как определить в каком ряду и строке вычисления произошли?
Ответить