Страница: 1 |
Вопрос: автоматический запуск макроса | Добавлено: 18.06.08 17:59 |
Автор вопроса: ![]() |
Подскажите пожалуйста.Есть макрос,на запись содержимого ячейки в логическое устройство через DDE протокол.Как сделать,чтобы этот макрос выполнялся постоянно.Не привязыванием его к кнопке,а именно постоянно. |
Ответы | Всего ответов: 9 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 13 Ответов: 348 |
Профиль | Цитата | #1 | Добавлено: 18.06.08 18:05 |
WORD,Excel,Visio?
Что значит постоянно? - 1 раз в секунду, при открытии файла, при поглаживании системника против шерсти? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #2 | Добавлено: 18.06.08 18:19 |
Сам макрос
Sub WriteDataBtn_Click() Chanel = DDEInitiate (“Dsdata”, “DemoTopic”) DdePoke Chanel, “Y1”, Cells(1, 1) DdeTerminate Chanel End Sub смысл второй строчки не важен,в результате в логическое устройство,на выход Y1 записывается сожержимое Cells(1, 1) этот макрос можно присвоить кнопке,а хочется чтобы он выполнялся постоянно,ну или с интервалом 0.5 секунды. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 13 Ответов: 348 |
Профиль | Цитата | #3 | Добавлено: 18.06.08 18:42 |
Да в каком приложении макрос то?
В Word и в Excel есть метод Application.OnTime Пример из стандартной экселевской справки: Application.OnTime EarliestTime:=TimeValue("17:00:00"
![]() Procedure:="my_Procedure", Schedule:=False Короче, выполнение этой строчки кода укажет екселю что в 17:00 надо выполнить макрос с именем "my_Procedure". Если нужно чтобы ваша процедура выполнялась через промежутки времени 1 секунду то надо в её код ввести строчку типа Application.OnTime EarliestTime:=now()+TimeValue("00:00:01"
![]() Procedure:="my_Procedure", Schedule:=False это значит типа "Уважаемый Excel, узнай пожалуйста текущее системное время и запусти меня через одну секундочку." Как сделать чтобы через 0,5сек. не знаю. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #4 | Добавлено: 18.06.08 18:44 |
спасибо большое
приложение excel |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #5 | Добавлено: 18.06.08 18:46 |
получается макрос должен выглядеть так?
Sub WriteDataBtn_Click() Chanel = DDEInitiate (“Dsdata”, “DemoTopic”) DdePoke Chanel, “Y1”, Cells(1, 1) DdeTerminate Chanel Application.OnTime EarliestTime:=now()+TimeValue("00:00:01" ![]() Procedure:="my_Procedure", Schedule:=False End Sub |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #6 | Добавлено: 18.06.08 19:55 |
Чего-то не получилось.Как должен выглядеть макрос? |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 13 Ответов: 348 |
Профиль | Цитата | #7 | Добавлено: 20.06.08 13:10 |
Sub WriteDataBtn_Click()
Chanel = DDEInitiate (“Dsdata”, “DemoTopic”) DdePoke Chanel, “Y1”, Cells(1, 1) DdeTerminate Chanel Application.OnTime EarliestTime:=now()+TimeValue("00:00:01" ![]() Procedure:="[b]WriteDataBtn_Click[/b]", Schedule:=False End Sub |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 13 Ответов: 348 |
Профиль | Цитата | #8 | Добавлено: 20.06.08 13:12 |
Извиняюсь. Просто хотел выделить жирным и не вышло. Sub WriteDataBtn_Click()
Chanel = DDEInitiate (“Dsdata”, “DemoTopic”) DdePoke Chanel, “Y1”, Cells(1, 1) DdeTerminate Chanel Application.OnTime EarliestTime:=now()+TimeValue("00:00:01" ![]() Procedure:="WriteDataBtn_Click", Schedule:=False End Sub |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #9 | Добавлено: 24.06.08 18:08 |
Спасибо большое,правда я запустил без строчки Procedure:="WriteDataBtn_Click", Schedule:=False
В принципе работает,но получается задержка 1 секунда.Не совсем удобно. Еще вопрос,как сделать,чтобы в одной и тойже книге осуществлялось чтение из одной ячейки и запись в другую,т.е. как сделать дублирование ячейки? |
Страница: 1 |
|