Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программное прерывание вывода данных по DDE в Excel / 2 сообщений из 2, страница 1 из 1
14.10.2015, 23:26
    #39077044
aligerno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное прерывание вывода данных по DDE в Excel
У меня в Excel ( на лист рабочей книги) выводятся данные по DDE из таблицы другого приложения ( не Excel)...Далее я это все обрабатываю с помощью кода написанного на VBA.
На время обработки кода ( это миллисекунды) есть необходимость программным образом приостановить на короткое время вывод данных по DDE а потом опять запустить - чтобы данные на какое время не выводились на лист. Т.е. какое время DDE сервер будет накапливать эти данные в буфере ( не теряя) до тех пор пока вывод
не будет разрешен опять.
Поясню - похожий процесс можно наблюдать когда пытаешься редактировать данный лист - точнее ячейку листа ( куда выводятся данные по DDE) - тогда вывод данных по DDE приостанавливается до тех пор пока будет закончено редактирование листа. Или еще - нажимаешь правой клавишей мыши на любую ячейку данного листа - вывод приостанавливается тоже, отпускаешь - вывод данных продолжен...Конечно можно, наверно, сделать эмуляцию этих действий в программном коде но это на мой взгляд достаточно неэффективно и опять таки не очень быстро.
Хотелось бы узнать более краткий и эффективный метод такого прерывания..Средствами VBA Excel это сделать не удается...
Может кто-то знает - возможно ли включить определенный скрипт на VBS в программный код VBA, который бы сначала приостанавливал вывод DDE ( в начале выполнения процедуры) а в конце - разрешал ?
...
Рейтинг: 0 / 0
15.10.2015, 09:35
    #39077223
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное прерывание вывода данных по DDE в Excel
aligernoприостанавливал вывод DDE Это навряд ли. Можно просто остановить DDE, а потом запустить его снова, но при этом установленные соединения будут разорваны. Если клиент имеет способность переподключения/восстановления соединения, такой вариант приемлем, что, правда, тоже маловероятно. Как альтернативный вариант - реализовывать некий старт/стоп через флаг приема.
Например, данные принятые по DDE поступают в ячейку A1 листа Лист1 . На листе Лист2 в ячейке A1 в зависимости от выставленного флага будет отображаться либо текущее значение Лист1!A1, либо предыдущее (сохраненное состояние).
Но исходя из aligernoDDE сервер будет накапливать эти данные в буфере ( не теряя) до тех пор пока вывод
не будет разрешен опять. необходимо буферизировать принятые данные, и обрабатывать их уже не с листа, а именно из этого буфера.

ЗЫ: Это "другое приложение" твоё?
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программное прерывание вывода данных по DDE в Excel / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]