У меня есть макрос "табель рабочего времени" для ввода и вывода времени для использования сотрудниками на работе. Вот макрос, который у меня есть:

ActiveCell.Value = Time
ActiveCell.NumberFormat = "h:mm AM/PM"

Он работает хорошо и отображается только как "7:30 утра", например, но в поле редактирования есть секунды, и это может сделать время сдвига (формула = IF (ИЛИ (C2 = "", F2 = ""), "", ((F2-C2) - (E2-D2)) * 24)) отключается на одну минуту, если секунды не совпадают, но мы не рассчитываемся на секунды, только минуты. Есть ли способ изменить макрос, где фиксируются только час и минута. Форматирование не исправляет это. Я в порядке с этим, возвращая "7:30:00 AM" каждый раз, а не фактические секунды. Спасибо!

2 ответа2

2

Округление до ближайшей минуты:

 ActiveCell.Value = Int(Time * 24 * 60) / (24 * 60)

Или же

ActiveCell.Value = TimeSerial(Hour(Time),Minute(Time),0)
0

Вы можете попробовать это также:

ActiveCell.Value = Format(range("D2"), "HH:MM")

Обратите внимание, что в ячейке D2 есть формула для расчета времени, которое вы показываете в приведенном выше вопросе.

Или вместо ActiveCell вы также можете использовать следующее:

Selection.NumberFormat = "h:mm"
Range("E327").NumberFormat = "hh:mm"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .