Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вставка в ячейку текущего времени, округленного кратно 5 мин - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Вставка в ячейку текущего времени, округленного кратно 5 мин
MIKHAIL-A-S Дата: Вторник, 09.12.2014, 13:09 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте.
Появилась необходимость вставки в активную ячейку текущее время, но округлённое кратно 5 мин.
Я не программист. Нашёл код, который вставляет текущее время в активную ячейку ActiveCell = TimeSerial(Hour(Time), Minute(Time), 0).
Есть решение округления для конкретной ячейки ActiveCell.FormulaR1C1 = "=ROUND(RC[-1]*24/(5/60),0)*((5/60)/24)". Но как соединить это в один макрос, чтобы при нажатии на кнопку в активную ячейку сразу вставлялось округлённое время?
К сообщению приложен файл: 9868499.xls (29.0 Kb)
 
Ответить
СообщениеЗдравствуйте.
Появилась необходимость вставки в активную ячейку текущее время, но округлённое кратно 5 мин.
Я не программист. Нашёл код, который вставляет текущее время в активную ячейку ActiveCell = TimeSerial(Hour(Time), Minute(Time), 0).
Есть решение округления для конкретной ячейки ActiveCell.FormulaR1C1 = "=ROUND(RC[-1]*24/(5/60),0)*((5/60)/24)". Но как соединить это в один макрос, чтобы при нажатии на кнопку в активную ячейку сразу вставлялось округлённое время?

Автор - MIKHAIL-A-S
Дата добавления - 09.12.2014 в 13:09
Саня Дата: Вторник, 09.12.2014, 13:17 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
[vba]
Код
Sub ddd()
     Dim d As Date: d = Time
      
     With ActiveCell
         .Value = TimeSerial(Hour(d), Minute(d), 0)
         .Offset(, 1).Value = Round(d * 24 / (5 / 60), 0) * ((5 / 60) / 24)
     End With

End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Sub ddd()
     Dim d As Date: d = Time
      
     With ActiveCell
         .Value = TimeSerial(Hour(d), Minute(d), 0)
         .Offset(, 1).Value = Round(d * 24 / (5 / 60), 0) * ((5 / 60) / 24)
     End With

End Sub
[/vba]

Автор - Саня
Дата добавления - 09.12.2014 в 13:17
SLAVICK Дата: Вторник, 09.12.2014, 13:18 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
[vba]
Код
ActiveCell = Round(Now() * 24 / (5 / 60), 0) * ((5 / 60) / 24)
[/vba]
Так?
К сообщению приложен файл: 3538993.xls (35.5 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение[vba]
Код
ActiveCell = Round(Now() * 24 / (5 / 60), 0) * ((5 / 60) / 24)
[/vba]
Так?

Автор - SLAVICK
Дата добавления - 09.12.2014 в 13:18
krosav4ig Дата: Вторник, 09.12.2014, 14:30 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
можно так [vba]
Код
ActiveCell = Int(Time()*288)/288
[/vba]

ЗЫ
Если нужно будет округлять 60, 30, 10 минут то вместо 288 нужно будет писать 12, 48, 144


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 09.12.2014, 14:45
 
Ответить
Сообщениеможно так [vba]
Код
ActiveCell = Int(Time()*288)/288
[/vba]

ЗЫ
Если нужно будет округлять 60, 30, 10 минут то вместо 288 нужно будет писать 12, 48, 144

Автор - krosav4ig
Дата добавления - 09.12.2014 в 14:30
MIKHAIL-A-S Дата: Вторник, 09.12.2014, 14:43 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо ОГРОМНОЕ. Всё работает.
 
Ответить
СообщениеСпасибо ОГРОМНОЕ. Всё работает.

Автор - MIKHAIL-A-S
Дата добавления - 09.12.2014 в 14:43
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!