Вопрос № 165463: Добрый день! Уважаемые эксперты, подскажите пожалуйста как поставить таймер в программу VBA Excel, и чтобы в конце выводилось время работы программы. Заранее спасибо!...
Вопрос № 165.463
Добрый день! Уважаемые эксперты, подскажите пожалуйста как поставить таймер в программу VBA Excel, и чтобы в конце выводилось время работы программы. Заранее спасибо!
Отправлен: 21.04.2009, 00:36
Вопрос задала: Lenusia (статус: 1-й класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: HookEst
Здравствуйте, Lenusia! Достаточно просто запомнить время открытия книги(событие Workbook_Open), а при закрытии(Workbook_BeforeClose) сравнить его с текущим... В молуле книги(Workbook):
Код:
Option Explicit Private StartTime
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Время работы: " & DateDiff("s", StartTime, Time) & " сек." End Sub
Private Sub Workbook_Open() StartTime = Time End Sub
Успехов.
Ответ отправил: HookEst (статус: Специалист)
Ответ отправлен: 21.04.2009, 02:51
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 247941 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо Вам большое!
Отвечает: Коростелев Евгений Николаевич
Здравствуйте, Lenusia!
Option Explicit Public Declare Function SetTimer Lib "user32" ( _ ByVal hwnd As Long, _ ByVal nIDEvent As Long, _ ByVal uElapse As Long, _ ByVal lpTimerfunc As Long) As Long
Public Declare Function KillTimer Lib "user32" ( _ ByVal hwnd As Long, _ ByVal nIDEvent As Long) As Long
'==========Public Declarations ============================== Public TimerID As Long 'Turn On and Off with
this ID Public TimerActive As Boolean 'Is the timer active
Public Sub ActivateMyTimer(ByVal Sec As Long) Sec = Sec * 1000 If TimerActive Then Call DeActivateMyTimer
On Error Resume Next TimerID = SetTimer(0, 0, Sec, AddressOf Timer_CallBackFunction) TimerActive = True
End Sub
Public Sub DeActivateMyTimer() KillTimer 0, TimerID End Sub
Sub Timer_CallBackFunction(ByVal hwnd As Long, ByVal uMsg As Long, B
yVal idevent As Long, _ ByVal Systime As Long)
' Здесь расположите Ваш код '.... '.... '....
' который будет выполняться через интервал таймера If TimerActive Then Call DeActivateMyTimer ' эту строчку можно закомментировать, тогда процедура таймера выполнится не единоразово ' а будет выполняться зацикленно
End Sub
Sub zapusk() ActivateMyTimer 5 ' запуск 5-ти секундного таймера :-) End Sub
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.