En este artículo, crearemos una macro para formatear la hora en formato hh: mm.sss.

Los datos brutos para este ejemplo consisten en ciertos valores de tiempo en la columna E.

ArrowSampleData

En este artículo, hemos creado una función definida por el usuario (o función personalizada) «HHMMSSSFormat». Esta función toma el tipo de fecha como entrada y devuelve la salida en un tipo de datos de cadena en formato hh: mm.sss.

Explicación lógica

En la función “HHMMSSSFormat” para convertir 60 segundos en un número de tres dígitos, hemos dividido los segundos en el valor de tiempo definido por 60 para obtener la fracción de los segundos definidos y luego lo hemos multiplicado por mil para obtener el número de tres dígitos.

La función “HHMMSSSFormat” se puede usar llamando directamente en la hoja de Excel o usando la función dentro del otro procedimiento (o macro).

La siguiente imagen muestra cómo hemos utilizado la función «HHMMSSSFormat» en la hoja de Excel para derivar la hora en formato hh: mm.sss.

ArrowCustomFunction

También hemos creado una macro «GettingCurrentTimeinHHMMSSSFormat» que utiliza la función «HHMMSSSFormat» para mostrar la hora actual en formato hh: mm.sss en un cuadro de mensaje. La siguiente imagen muestra la salida cuando ejecutamos esta macro a las 3: 54: 30s.

ArrowMacroOutput

Siga a continuación el código

Option Explicit

Function HHMMSSSFormat(DateTime As Date) As String

'function will return string value

'Declaring integer variable

Dim SecondValue As Integer

'Extracting seconds from DateTime parameter

SecondValue = Second(DateTime)

'Converting seconds value to three digit number

SecondValue = (SecondValue / 60) * 1000

'Change the formatting of time in the required format

HHMMSSSFormat = Format(Hour(DateTime), "00") & ":" & _

Format(Minute(DateTime), "00") & "." & Format(SecondValue, "000")



End Function

Sub GettingCurrentTimeinHHMMSSSFormat()

'Declaring string variable

Dim CurrentTime As String

'Calling custom function HHMMSSSFormat

CurrentTime = HHMMSSSFormat(Now)

'Displaying message box with Ok button only

MsgBox CurrentTime, vbOKOnly, "Current Time"

End Sub

Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]