ActiveCell.Value = Tempo vba sem segundos

0

Eu tenho uma macro de "quadro de horários" para horários de entrada e saída para os funcionários usarem no trabalho. A macro que tenho é esta:

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

Funciona bem e só é exibido como "7:30 AM", como exemplo, mas no campo de edição, há segundos e isso pode fazer o tempo de deslocamento (fórmula = IF (OR (C2="", F2=""), "", ((F2-C2) - (E2-D2)) * 24)) desligado por um minuto se os segundos não estiverem alinhados, mas não pagamos em segundos, apenas alguns minutos. Existe uma maneira de modificar a macro onde apenas a hora e o minuto são capturados. A formatação não corrige isso. Eu estou bem com ele retornando "7:30:00 AM" cada vez e não os segundos reais. Obrigada!

    
por Jason 27.07.2018 / 16:50

2 respostas

2

Arredondar para o minuto mais próximo:

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

Ou

ActiveCell.Value = TimeSerial(Hour(Time),Minute(Time),0)
    
por 27.07.2018 / 16:55
0

Você também pode tentar:

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

Observação: A célula D2 tem a fórmula que calcula a hora que você mostrou na pergunta acima.

Ou no lugar de ActiveCell você também pode usar os seguintes:

Selection.NumberFormat = "h:mm"
Range("E327").NumberFormat = "hh:mm"
    
por 28.07.2018 / 13:18