¿Cómo usar la función TimeSerial en VBA?

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

VBA

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

VBA

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:

VB

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.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario