|
автор: Аноним (29.09.2006 в 03:53) |
|
| Sub Clock()
' Уведомляем Excel, что процедуру Alarm нужно вызвать в 20:55
Application.OnTime TimeValue("20:55:00"), "Alarm"
End Sub
Sub Alarm()
MsgBox "Будильник"
End Sub
Как сделать чтобы вместо времени в макросе вводить время в ячейке Exel и желательно чтобы запускалось не через кнопочку а автоматически.
Подскажите как сделать? | |
|
| |
|
автор: Леонид (02.10.2006 в 12:35) |
|
| Попробуй так
Sub Clock()
Dim X As Date
Range("E22").Select
X = ActiveCell.FormulaR1C1
' Уведомляем Excel, что процедуру Alarm нужно вызвать в 20:55
Application.OnTime TimeValue(X), "Alarm"
End Sub
Sub Alarm()
MsgBox "Будильник"
End Sub | |
|
| |
|
|
|
| Аноним, Не рекомендую использовать предыдущий код в качестве решения Вашего вопроса, причём по многим причинам :
1. Проигнорировано одно из требования, а именно автоматический запуск макроса, т.е. надо было использовать одно из двух событий : Auto_Open() или Workbook_Open()
2. Если кнопка (которая на самом деле - не нужна) располагается не в рабочем листе, а например, на панели инструментов, то предполагается, что время всегда находится в ячейке активного листа, что маловероятно, тем более, что активным может оказаться, например, лист диаграммы. В таком случае, Вы получите ошибку.
3. Свойство .FormulaR1C1 возвращает строку, причём, в случае наличия формулы (которая может возвращать в т.ч. и время) - это свойство возвратит текст формулы. Переменная же X имеет тип Date, т.е. инструкция присвоения X = ActiveCell.FormulaR1C1 будет работать только в одном случае, а именно, если ячейка содержит время в виде текста (), во всех остальных случаях Вы получите ошибку.
И есть ещё один момент, который не учтён в первоначальной версии Вашего макроса :
Если закрыть рабочую книгу, где находится макрос Clock() до наступления нужного времени (без закрытия всего приложения) то при достижении указанного времени MS Excel откроет эту книгу и запустит макрос Alarm()
В общем, если Вас ещё интересует этот вопрос, и Вы хотите избежать выполнение макроса после закрытия книги, то Вы можете написать мне напрямую, и я вышлю нужный пример с таймером. | |
|
| |
|
|
|
| Добрый день!
помогите пожалуйста поставить напоминание в Excel. Мне нужни чтобы за день до даты, например, контракта, всплывало напоминание. Может есть макрос какой-нибудь подходящий?
Заранее спасибо! | |
|
| |