![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 02.07.2009
Сообщений: 14
|
![]()
здравствуйте, есть вот такой код. при наступлении определенного времени выполняется процедура box, после нее должна выполняться процедура box2, не могу понять, как сделать переход. через main - не работает. спасибо
Sub main() itime box box2 End Sub Sub itime() Application.OnTime _ earliesttime:=TimeValue("10:40"), _ procedure:="box" Application.OnTime _ earliesttime:=TimeValue("10:45"), _ procedure:="box" End Sub Sub box() MsgBox ("box") End Sub Sub box2() MsgBox ("box2") End Sub |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Так?
Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 02.07.2009
Сообщений: 14
|
![]()
спасибо, работает. а вот скажите, если при входе в процедуру с помощью application on time в процедуре начинает выполняться цикл и условия его прекращения не выполняются до наступления следующего входа в процедуру с помощью application on time, то что происходит - цикл продолжает выполняться или принудительно исполняется процедура application on time.
|
![]() |
![]() |
![]() |
#4 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Как только выполнение второй процедуры закончилось, продолжает выполняться первая. PS: Больше чем уверен, что в Вашем случае использование Application.OnTime неоправданно. Какой смысл запускать 2 раза одну и ту же процедуру с интервалом 5 минут? Что это за цикл такой, что ему 5 минут недостаточно? |
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 02.07.2009
Сообщений: 14
|
![]()
вот он, этот цикл. не знаю , как реализовать то что мне надо, чтобы работа правильно). пока никто не разобрался. может быть у Вас получится. аpplication.ontime использую, так как не знаю других способов заставить макрос работать в нужное мне время. Спасибо
Sub itime() Application.OnTime _ earliesttime:=TimeValue("13:40"), _ procedure:="copyPrice" ' идея в том, чтобы процедура copyPrice выполнялась в начале каждой пятиминутки Application.OnTime _ earliesttime:=TimeValue("13:45"), _ procedure:="copyPrice" Application.OnTime _ earliesttime:=TimeValue("13:50"), _ procedure:="copyPrice" End Sub Public Sub copyPrice() 'тут просто действия над значениями ячеек demand = Range("d2") Range("e2").Copy _ Destination:=Range("a8") initial_capital = Range("d8") open_price = Range("a8") amount_of_shares = initial_capital \ open_price ' Range("e8") = amount_of_shares current_capital = initial_capital - open_price * amount_of_shares Range("f8") = current_capital iresidual End Sub Sub iresidual() Range("c8") = Range("d2") * 100 / Range("a8") - 100 residual = [c8] While (residual > -0.1 And residual <= 0.5) Range("c8") = Range("d2") * 100 / Range("a8") - 100 residual = [c8] DoEvents Wend 'вот здесь проблема, если условия цикла выполняются в течение 5 минут, 'то все нормально, но если residual не принял ' нужного значения за 5 минут, то принудительно исполняется 'следующий вход в Application.ontime, 'необходимо же, чтобы работало в этом случае так: ' цикл продолжается, пока не исполнится условие для выхода, сколь угодно долгое время ' как только это произошло исполняется оставшаяся часть макроса и он опять переходит к 'application.ontime и ждет начала пятиминутки и все по новой. residual = Range("c8") If (residual >= 0.5) Then Range("d8") = Range("e8") * Range("d2") + Range("f8") End If If (residual < -0.1) Then Range("d8") = Range("e8") * Range("d2") + Range("f8") End If End Sub |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Связанные списки в C++ | Rembo | Общие вопросы C/C++ | 47 | 11.07.2016 12:45 |
Связанные формы Jq | KEV | JavaScript, Ajax | 1 | 28.05.2009 20:03 |
связанные списки и не только.... | owl-ka | Microsoft Office Excel | 1 | 11.02.2009 00:27 |
Связанные таблицы в Аксессе | mirawoo | Microsoft Office Access | 8 | 12.03.2008 00:13 |
Не отображаются данные связанные с гл. таблицей? | zimmion | БД в Delphi | 11 | 27.02.2008 18:50 |