Добрый вечер! Коллеги требуется помощь. Столкнулся с такой проблемой. Хочу задать условие: При запуске Макроса 2 Ексель проверяет текущее время (сверяя его с поставленным) и в случае чего выдает по условию или MsgBox или же запускает макрос 1. На данное время (22:42) макрос почему то выдает MsgBox, вместо исполнения макроса.
Код
Sub Макрос1()Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 2).End(xlUp).Row
Cells(iLastRow + 1, 2).Select
ActiveCell.FormulaR1C1 = "1"
Application.Run "Макрос2"
End Sub
Sub Макрос2()
If Now < "22:31:00" Then
MsgBox "СТОП"
Else
TimeToRun = Now + TimeValue("00:00:15")
Application.OnTime TimeToRun, "Макрос1"
End If
End Sub
1. Название темы ни о чём. Предложите новое - модераторы поменяют. 2. Код следует оформлять соответствующим тегом: ищите такую кнопку (см. скрин) и исправьте своё сообщение.
Владимир добрый день! Все равно не работает - после 1 запуска не может включить заново Макрос2. (Пишет что его просто нету, хоть в VBA он так подписан)
Не берите плохой пример с локализаторов Excel - пишите имена функций и переменных латынью. Кроме того, всегда используйте Option Explicit. Обратите также внимание на форму записи Application.Ontime
Код
Option Explicit
Sub Macro1()
Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 2).End(xlUp).Row
Cells(iLastRow + 1, 2).Select
ActiveCell.FormulaR1C1 = "1"
Application.Run "Macro2"
End Sub
Sub Macro2()
Dim TimeToRun
If Time < TimeValue("19:44:00") Then
MsgBox "СТОП"
Else
TimeToRun = Now + TimeValue("00:00:15")
Application.OnTime TimeToRun, ThisWorkbook.Name & "!Macro1"
End If
End Sub
Для МОДЕРАТОРОВ. Тема: Как в VBA сравнить текущее время с определенным.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Дмитрий Попов, заменим время 23 часа и 6 часов на числа 23 и 6 а теперь назовите такое число, которое будет одновременно больше 23 и меньше 6! знаете такое? если знаете несколько, называйте все такие числа)) if Time > TimeValue("23:00:00") Or Time < TimeValue("06:00:00")
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!