Contenido
En VBA (Visual Basic for Applications), la función TimeSerial se usa para construir una hora válida a partir de la hora, minutos y segundos proporcionados como argumentos.
Sintaxis básica
TimeSerial(hour, minute, second)
- hour: El valor de la hora (0 23).
- minute: El valor de los minutos (0 59).
- second: El valor de los segundos (0 59).
La función TimeSerial devuelve un valor de tipo Date que representa una hora del día específica de acuerdo con los argumentos proporcionados.
Ejemplo
Sub EjemploTimeSerial()
Dim horaCompleta As Date
' Construir una hora con 9 horas, 30 minutos, y 0 segundos
horaCompleta = TimeSerial(9, 30, 0)
' Mostrar la hora en un cuadro de mensaje
MsgBox "La hora es: " & horaCompleta
End Sub
En el ejemplo proporcionado, se usa TimeSerial para definir una hora como 9:30 AM, ya que no se especifican segundos y la hora se establece en el formato de 24 horas. Luego se muestra esta hora en un cuadro de mensaje con MsgBox.
Es importante considerar que la función TimeSerial correctamente manejará y ajustará los valores que sobrepasan los límites normales. Por ejemplo, si proporcionas 75 minutos, ajustará la hora sumando una hora y dejando 15 minutos. Aquí tienes un ejemplo de eso:
Sub EjemploTimeSerialConAjuste()
Dim horaAjustada As Date
' Si proporcionas valores fuera de los límites usuales,
' la función ajustará la hora resultante automáticamente
horaAjustada = TimeSerial(8, 75, 120)
' La línea anterior será equivalente a TimeSerial(9, 16, 0),
' es decir, 8 horas más 1 hora y 15 minutos más 1 minuto, y 120 segundos son 2 minutos
MsgBox "La hora ajustada es: " & horaAjustada
End Sub
Usa TimeSerial para generar horas específicas, las cuales puedes después utilizar en tu código para diferentes propósitos, como comparaciones de tiempo, establecer valores de control en formularios, o trabajar con fechas y horas en cálculos y lógica de tu aplicación.
Un detalle importante es que aunque puedas pasar número negativo o números que exceden el rango normal (como 25 horas o -1 horas), VBA ajustará estos a un valor de hora válido. Por ejemplo, TimeSerial(25,0,0) dará como resultado «1:00:00 AM» del día siguiente, mientras que TimeSerial(-1,0,0) devolverá «11:00:00 PM» del día anterior.