![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.12.2009
Сообщений: 15
|
![]()
Добрый день. Помогите плз. разобраться стаймером.
У меня есть два листа на одном находится макрос с таймером. на другом происходят вычисления по неким формулам. на лист с вычислениями я сделал ссылку на минуты с листа "таймер". текущее значение ячейки с минутой является аргументом к некоторым формулам, и пересчет формул на это листе происходит по событию Worksheet_Calculate(), т.к. в ряду некоторых обстоятельств по другому нельзя. Вот мой код макроса: Sub Ввод_времени() 'Обновляет содержимое ячейки A1 текущим временем Cells(1, 1) = Time Minuty = Sheets("Таймер").Cells(2, 3).Value Hasy = Sheets("Таймер").Cells(1, 3).Value 'Запускает следующее событие через секунду после настоящего NextTick = Now + TimeValue("00:01:00") Application.OnTime NextTick, "Лист2.Ввод_времени" End Sub Sub Остановка_времени() On Error Resume Next Application.OnTime NextTick, "Лист2.Ввод_времени", , False End Sub По сути мой вариант работает, но если запущю макрос к примеру в 12 мин 25 сек, то следущее обновление пройдет ровно через минуту т.е 13 мин 25 сек. Мне нужно сделать так, чтоб в этом макросе не было секунд, и с системными часами синхронизировались только час и минута. Короче мне нужно чтоб событие Worksheet_Calculate() срабатывало только тогда когда изменится значение минуты. Если кто знает как перебороть секунды в макросе плз. помогите. за ранее благодарен Последний раз редактировалось vik85; 16.06.2010 в 09:50. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Если вам секунды не нужны,то сделайте обновление таймера через минуту
Код:
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 19.12.2009
Сообщений: 15
|
![]()
Я так и сделал, посмотрите код, который написал я. Просто получается что таймер обновится через минуту после того времени когда я его запустил, а не тогда, когда реально кончится минута. Т.е, к примеру, если таймер запущен в 13:15:23 по системным часам, то я увижу обновление ровно через минуту - 13:16:23. Что само собой мне и не нравится, и как этого избежать (за исключением ка ловить 00 секунд для запуска) я не знаю. Может это и не возможно?
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Таймер с синхронизацией
Код:
Анализ,обработка данных Недорого
Последний раз редактировалось doober; 16.06.2010 в 19:22. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
А может так? Отнимаем от текущего времени кол-во текущих секунд и + 1 мин.
NextTick = Now + TimeValue("00:01:00") - TimeSerial(0, 0, Second(Time)) |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 19.12.2009
Сообщений: 15
|
![]()
спасибо, помогло. Очень признателен за помощь
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Таймер | dnskts | Помощь студентам | 5 | 11.06.2010 13:38 |
таймер в C# | Munky | Помощь студентам | 2 | 15.04.2010 20:30 |
Таймер(C#) | Bella | Помощь студентам | 0 | 23.03.2010 19:17 |
Таймер на С++ | Александр Елис | Помощь студентам | 3 | 26.01.2010 16:30 |
Таймер в С# | kommunist | Общие вопросы .NET | 3 | 02.06.2008 12:11 |