ActiveCell.Value = Tiempo vba sin segundos

0

Tengo una macro de "hoja de horas" para las horas de entrada y salida para que los empleados las usen en el trabajo. La macro que tengo es esta:

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

Funciona bien y solo se muestra como "7:30 AM", como ejemplo, pero en el campo de edición, hay segundos y esto puede hacer que el tiempo de cambio (fórmula = IF (OR (C2 = "", F2 = "" ), "", ((F2-C2) - (E2-D2)) * 24)) apagado por un minuto si los segundos no se alinean, pero no pagamos segundos, solo minutos. ¿Hay alguna manera de modificar la macro donde solo se capturan la hora y los minutos? El formateo no lo corrige. Estoy de acuerdo con que regrese "7:30:00 AM" cada vez y no los segundos reales. ¡Gracias!

Jason
fuente

Respuestas:

2

Redondear al minuto más cercano:

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

O

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

Puedes probar esto también:

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

Tenga en cuenta que Cell D2tiene una fórmula que calcula el tiempo que ha mostrado en la pregunta anterior.

O en lugar de ActiveCell, también puede usar lo siguiente:

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