powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Application.OnTime - завершение цикла.
6 сообщений из 6, страница 1 из 1
Application.OnTime - завершение цикла.
    #36060245
Alwise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, добрый день!
Подскажите пожалуйста, если не трудно.
Мучаюсь с завершением OnTime, при периодическом сохранении экселевского файла в формате *.xml.
Никак не могу понять, почему он не завершается
Вот что получается:

---
Public tStart As Variant


Sub SaveAsXml()
'
Workbooks("datalist.xls").Activate
Workbooks("datalist.xls").SaveAsXMLData Filename:= _
"T:\1l\20.xml", Map:=ActiveWorkbook.XmlMaps( _
"data_карта")
Application.OnTime tStart, "SaveAsXml"
Call TimerForSave
End Sub


Sub TimerForSave()
Dim tStart As Variant
tStart = Now + TimeSerial(0, 0, 15)
Application.OnTime tStart, "SaveAsXml"
End Sub

Sub StopAutomaticMacro()
Application.OnTime EarliestTime:=tStart, Procedure:="SaveAsXml", Schedule:=False
End Sub

---
При этом если делать выполнять StopAutomaticMacro(), то пишет ошибку
Run-time error '1004':
Method 'OnTime' of object'_application failed

Подскажите пожалуйста, может кто-нибудь знает в чем проблема.
Заранее благодарен.
...
Рейтинг: 0 / 0
Application.OnTime - завершение цикла.
    #36060440
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй удалить выделенную строку

Код: plaintext
1.
2.
3.
4.
Sub TimerForSave()
Dim tStart As Variant
tStart = Now + TimeSerial( 0 ,  0 ,  15 )
Application.OnTime tStart, "SaveAsXml"
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Application.OnTime - завершение цикла.
    #36060459
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И где здесь цикл, простите?
А во вторых, зачем ты дважды подряд взводишь таймер? Один раз в SaveAsXml, потом из него вызываешь TimerForSave в котором опять взводишь таймер. В итоге у тебя получается что каждый запуск SaveAsXml заводит два запуска этого макроса, следующий запуск заводит еще два запуска и так до бесконечности...
А StopAutomaticMacro пытается удалить только один запуск из расписания.
А повторное объявление tStart внутри TimerForSave только добавляет прелести всему этому кошмару.
...
Рейтинг: 0 / 0
Application.OnTime - завершение цикла.
    #36060771
Alwise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы. Обязательно попробую вариант предложенный KL (XL).
White Owl, стало очень интересно, как же решить задачу, чтобы она не была такой уж кошмарной.
(С замечанием, что это кошмар согласен на все 100%)

Если найдется время для ответа, буду очень благодарен.
С уважением.
...
Рейтинг: 0 / 0
Application.OnTime - завершение цикла.
    #36060805
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сова прав, я проглядел повтор. Попробуйте удалить обе отмеченные строки

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public tStart As Variant


Sub SaveAsXml()
'
Workbooks("datalist.xls").Activate
Workbooks("datalist.xls").SaveAsXMLData Filename:= _
"T:\1l\20.xml", Map:=ActiveWorkbook.XmlMaps( _
"data_карта")
Application.OnTime tStart, "SaveAsXml"
Call TimerForSave
End Sub


Sub TimerForSave()
Dim tStart As Variant
tStart = Now + TimeSerial( 0 ,  0 ,  15 )
Application.OnTime tStart, "SaveAsXml"
End Sub

Sub StopAutomaticMacro()
Application.OnTime EarliestTime:=tStart, Procedure:="SaveAsXml", Schedule:=False
End Sub
...
Рейтинг: 0 / 0
Application.OnTime - завершение цикла.
    #36061450
Alwise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо друзья!!!
Действительно все заработало!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Application.OnTime - завершение цикла.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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