У меня есть лист Excel, на котором есть ссылки dde на рыночные данные в реальном времени. Я использую таймер, чтобы смотреть цены dde каждую секунду. Затем отправьте заказы, когда будут выполнены определенные условия. Я попробовал бесконечный цикл с DoEvent в середине, который работает в течение 5 секунд, а затем замораживает книгу.
Есть ли способ реагировать на изменения в обновлениях dde? Событие изменения не обнаруживает их. Он просто определяет, когда пользователь вносит изменения вручную.
Мне сказали, что если у меня есть условное форматирование, есть способ подобрать это событие. Таким образом, я могу создать формулу ячейки, которая станет истинной, когда мое условие будет выполнено, а затем условно отформатировать эту ячейку для некоторого форматирования, когда оно истинно, а затем выбрать событие изменения формата. Это возможно? Если да то как. Мы ценим любые предложения.
Чтобы уточнить: я хочу получить событие В VBA, которое отправит заказ на торговлю акциями. Сейчас я делаю это с помощью таймера, который перебирает все строки в поисках истинной ячейки в столбце триггера. После обнаружения он отключает флаг для этой строки (устанавливает истинное условие на ложное) и отправляет заказ.
Проблема в том, что одна секунда — это вечность для быстро движущихся акций. Поэтому мне нужно, чтобы в VBA возникало событие, когда ячейка в столбце триггера становится истинной, чтобы я мог немедленно ответить, а не ждать второго интервала класса таймера.
Насколько я знаю, нельзя вызывать таймер со значением меньше секунды. Если бы я мог использовать миллисекунды, моя проблема была бы решена. Я бы просто перебирал список каждые 10 миллисекунд.
Насколько я знаю, я не могу создать другой поток в VBA. Если бы я мог, я бы сделал бесконечный цикл и засыпал его после каждой итерации примерно на 10 миллисекунд.
Насколько мне известно, я не могу напрямую подключить dde к VBA или даже к .net, поскольку MSDN говорит, что он больше не поддерживается.
Я надеюсь, что это проясняет. Все предложения приветствуются.
Worksheet_Calculate
? Я предполагаю, что это может сработать, но у меня нет опыта работы с DDE. - person Tim Williams   schedule 25.07.2012