|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.02.2009, 14:46 | #1 |
Регистрация: 22.02.2009
Сообщений: 4
|
DDE с задержкой
Люди добрые!
Помогите, не могу разобраться, что не так в коде, получаю котировки через DDE, но их так много, что за одну секунду пишеться 4-5 строк, цель макроса такова, что бы выставить паузу желаемой длинны, прикрутил форму в которой выставляется время задержки, котировки накапливаются на другом листе, при этом Excel висит, может кто подскажет и другие пути решения задачи |
22.02.2009, 15:16 | #2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
В Вашем проекте можно заменить код:
Код:
Код:
Так будет работать побыстрее... Цитата:
Ставим в поле на форме интервал 0,2 вместо 1, и макрос будет записывать по 5 строк в секунду. Может, Вам надо отслеживать событие обновления данных на листе, вместо запуска макроса с постоянным интервалом?
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 22.02.2009 в 15:29. |
|
22.02.2009, 15:34 | #3 |
Регистрация: 22.02.2009
Сообщений: 4
|
Спасибо за совет по оптимизации кода, счас попробую переписать, проблемку Вы не поняли, во время исполнения макроса Excel зависает, не реагирует ни на какие команды, при этом котировки записываются, и время я выставляю 5 секунд, так как при маленьком таймфрейме 1 сек пишеться слишком много информации
|
22.02.2009, 15:45 | #4 |
Регистрация: 22.02.2009
Сообщений: 4
|
Всё таки распишу подробней, котировки поступают через DDE на лист "Исходный" Запись поступающих котировок производится на лист "Накопительный" при выставлении паузы в 5 секунд производится запись на лист "Накопительный" со смещением ячеек вниз, вроде всё работает, но Excel , зависает при работе не реагирует ни одна кнопка, кроме моей формы, где стоит нажать "СТОП" и EXCEL ачинает реагировать
|
22.02.2009, 15:47 | #5 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Найдите среди свойств формы свойство ShowModal, и установите его в False И будет Вам счастье |
|
22.02.2009, 16:03 | #6 |
Регистрация: 22.02.2009
Сообщений: 4
|
Ещё раз спасибо, как настрою выложу рабочую форму, может кому пригодиться.
|
26.12.2009, 23:27 | #7 |
Новичок
Джуниор
Регистрация: 26.12.2009
Сообщений: 2
|
Я при такой-же проблеме вставил в цикл DoEvents, процессор стал загружен на 25%, остальные проги работают.
Nobody_And_Nothing
|
14.08.2011, 18:54 | #8 |
Регистрация: 14.08.2011
Сообщений: 5
|
[/QUOTE]
Может, Вам надо отслеживать событие обновления данных на листе, вместо запуска макроса с постоянным интервалом?[/QUOTE] Извиняюсь, а вы не могли бы подсказать как поменять код, чтобы запись шла именно так, то есть по мере каждого обновления полученных значений? Может ли макрос отслеживать сам факт получения новых значений с дде сервера, если они идентичны ранее полученным величинам и поступили с большой скоростью, например 30 раз за 50 миллисекунд? |
14.08.2011, 19:13 | #9 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Да, может.
Примеров таких макросов на форуме множество. Например, здесь: http://www.programmersforum.ru/showthread.php?t=40744 Суть: пишем в любую ячейку формулу, ссылающуюся на обновляемый по DDE диапазон, и обрабатываем событие пересчёта формул Worksheet_Calculate |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с dde | AndreiFX | Общие вопросы Delphi | 0 | 17.11.2008 06:07 |
таймер с задержкой на включение | amandra | Общие вопросы Delphi | 3 | 22.04.2008 23:20 |
многострочная подсказка с задержкой | dimonbest | Общие вопросы Delphi | 6 | 24.03.2008 13:13 |
Вопрос по DDE | AlphA | Работа с сетью в Delphi | 0 | 28.12.2007 22:51 |