ActiveCell.Value = время vba без секунд

473
Jason

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

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

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

0

2 ответа на вопрос

2
Scott Craner

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

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

Или же

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

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

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

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

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

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

Похожие вопросы