Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Application.OnTime - завершение цикла. / 6 сообщений из 6, страница 1 из 1
25.06.2009, 17:02:27
    #36060245
Alwise
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Application.OnTime - завершение цикла.
Друзья, добрый день!
Подскажите пожалуйста, если не трудно.
Мучаюсь с завершением 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
25.06.2009, 18:10:05
    #36060440
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Application.OnTime - завершение цикла.
Попробуй удалить выделенную строку

Код: 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
25.06.2009, 18:18:27
    #36060459
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Application.OnTime - завершение цикла.
И где здесь цикл, простите?
А во вторых, зачем ты дважды подряд взводишь таймер? Один раз в SaveAsXml, потом из него вызываешь TimerForSave в котором опять взводишь таймер. В итоге у тебя получается что каждый запуск SaveAsXml заводит два запуска этого макроса, следующий запуск заводит еще два запуска и так до бесконечности...
А StopAutomaticMacro пытается удалить только один запуск из расписания.
А повторное объявление tStart внутри TimerForSave только добавляет прелести всему этому кошмару.
...
Рейтинг: 0 / 0
25.06.2009, 23:30:33
    #36060771
Alwise
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Application.OnTime - завершение цикла.
Спасибо за ответы. Обязательно попробую вариант предложенный KL (XL).
White Owl, стало очень интересно, как же решить задачу, чтобы она не была такой уж кошмарной.
(С замечанием, что это кошмар согласен на все 100%)

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

Код: 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
26.06.2009, 12:29:50
    #36061450
Alwise
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Application.OnTime - завершение цикла.
Большое спасибо друзья!!!
Действительно все заработало!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Application.OnTime - завершение цикла. / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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