Cómo dar formato de hora a un número decimal en VBA
VBA (Visual Basic for Applications) es un lenguaje de programación de macros, es decir, un conjunto de instrucciones que sirven para automatizar tareas repetitivas desde Microsoft Office, pudiéndose emplear en cualquiera de sus productos.
¿Cómo convertir la hora en número decimal?
Para ello empleamos la siguiente función:
Sub ConvertirHoraEnDecimal() Dim D As Date, TB, Resultado As Single 'Para el ejemplo, pero puede ser en string D = "12:15" TB = Split(D, ":") Resultado = TB(0) + ((TB(1) * 100) / 60) / 100 End Sub
¿Cómo convertir el número decimal en hora?
Si deseamos realizar la operación inversa empleamos esta otra:
Sub ConvertirDecimalEnHora() Dim D As Single, Resultado, e 'Para el ejemplo D = 1.25 e = CStr(Round((D - Int(D)) / 100 * 60, 2)) & "0" Resultado = CStr(Int(D)) & ":" & Mid(e, 3, 2) End Sub