Funciones de Fecha en VBA

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on diciembre 6, 2022

Este tutorial cubrirá las diferentes Funciones de Fecha incorporadas en VBA.

 

Función Date de VBA

Puede utilizar la Función Date para obtener la fecha actual. La sintaxis de la Función Fecha es Date(). No tiene argumentos. El siguiente código muestra cómo utilizar la función Fecha:

Sub UsandoLaFuncionDate()

    Dim fecha As Date
    fecha = Date
    
    Debug.Print fecha

End Sub

El resultado mostrado en la Ventana Inmediata es:

Resultado Función Date

Función Now de VBA

Puede utilizar la función Now para obtener la fecha y hora actuales.

La sintaxis de la función Now es Now(). No tiene argumentos.

El siguiente código muestra cómo utilizar la función Now:

Sub UsandoLaFuncionNow()

    Dim ahora As Date
    ahora = Now()
    Debug.Print ahora
    
End Sub

El resultado es:

Función Now

 

Función Time de VBA

Puede utilizar la función Time para obtener la hora actual.

La sintaxis de la Función Time es Time(). No tiene argumentos.

El siguiente código muestra cómo utilizar la Función Time:

Sub UsandoLaFuncionTime()

    Dim Hora As Date
    Hora = Time()
    Debug.Print Hora

End Sub

El resultado es:

Resultado Función Time

Función DateAdd de VBA

Puede utilizar la función DateAdd para añadir un intervalo de fecha/hora a una fecha u hora, y la función devolverá la fecha/hora resultante.

La sintaxis de la función DateAdd es:

DateAdd(Intervalo, Número, Fecha) donde:

  • Intervalo – Cadena que especifica el tipo de intervalo a utilizar. El intervalo puede ser uno de los siguientes valores:

«d» – día

«ww» – semana

«w» – día de la semana

«m» – mes

«q» – trimestre

«yyyy» – año

«y» – día del año

«h» – hora

«n» – minuto

«s» – segundo

  • Número – El número de intervalos que desea añadir a la fecha/hora original.
  • Fecha – La fecha/hora original.

Nota: Cuando utilices fechas en tu código debes rodearlas de # o comillas.

El siguiente código muestra cómo utilizar la función DateAdd:

Sub UsandoLaFuncion_DateAdd()

    Dim fechaPasada As Date
    
    fechaPasada = DateAdd("m", 1, "13/10/2022")
    
    Debug.Print fechaPasada

End Sub

El resultado es:

Resultado Función DateAdd

 

Función DateDiff de VBA

Puede utilizar la función DateDiff para obtener la diferencia entre dos fechas, basándose en un intervalo de tiempo especificado.

La sintaxis de la función DateDiff es:

DateDiff(Intervalo, Fecha1, Fecha2, [PrimerDíaDeLaSemana], [PrimeraSemanaDelAño]) donde:

  • Intervalo – Una cadena que especifica el tipo de intervalo a utilizar. El intervalo puede ser uno de los siguientes valores:

«d» – día

«ww» – semana

«w» – día de la semana

«m» – mes

«q» – trimestre

«yyyy» – año

«y» – día del año

«h» – hora

«n» – minuto

«s» – segundo

  • Fecha1 – Un valor de fecha que representa la fecha anterior.
  • Fecha2 – Un valor de fecha que representa la fecha posterior.
  • PrimerDíaDeLaSemana(Opcional) – Una constante que especifica el día de la semana que la función debe utilizar como primer día de la semana. Si está en blanco, se utiliza el domingo como primer día de la semana. Firstdayofweek puede ser uno de los siguientes valores:

-vbSunday – utiliza el domingo como primer día de la semana.

-vbMonday – utiliza el lunes como primer día de la semana.

-vbTuesday – utiliza el martes como primer día de la semana.

-vbWednesday – utiliza el miércoles como primer día de la semana.

-vbThursday – utiliza el jueves como primer día de la semana.

-vbFriday – utiliza el viernes como primer día de la semana.

-vbSaturday – utiliza el sábado como primer día de la semana.

-vbUseSystemDayOfTheWeek – utiliza el primer día de la semana especificado en la configuración del sistema.

  • PrimeraSemanaDelAño(Opcional) – Una constante que especifica la primera semana del año. Si está en blanco, se utiliza la semana del 1 de enero como primera semana del año. Primera_Semana_Del_Año puede ser uno de los siguientes valores:

-vbFirstJan1 – utiliza la semana que contiene el 1 de enero.

-vbFirstFourDays – utiliza la primera semana que contiene al menos cuatro días en el nuevo año.

-vbFirstFullWeek – utiliza la primera semana completa del año.

-vbSystem – utiliza la primera semana del año especificada en la configuración del sistema.

El siguiente código muestra cómo utilizar la función DateDiff:

Sub UsandoLaFuncion_DateDiff()
 
    Dim DiferenciaEntreDosFechas As Long
      
    DiferenciaEntreDosFechas = DateDiff("q", "13/10/2020", "13/10/2022")
    
    Debug.Print DiferenciaEntreDosFechas
 
End Sub

El resultado es:

Resultado Función DateDiff

Función DatePart de VBA

Puede utilizar la función DatePart para devolver una parte (día, semana, trimestre, mes, etc.) de una fecha determinada.

La sintaxis de la función DatePart es: DatePart(Intervalo, Fecha,[PrimerDíaDeLaSemana], [PrimeraSemanaDelAño]) donde:

  • Intervalo – Una cadena que especifica la parte de la fecha a devolver. El intervalo puede ser uno de los siguientes valores:

«d» – día

«ww» – semana

«w» – día de la semana

«m» – mes

«q» – trimestre

«yyyy» – año

«y» – día del año

«h» – hora

«n» – minuto

«s» – segundo

  • Fecha – La fecha de la que desea que la función devuelva una parte.
  • PrimerDíaDeLaSemana(Opcional) – Una constante que especifica el día de la semana que la función debe utilizar como primer día de la semana. Si está en blanco se utiliza el domingo como primer día de la semana. PrimerDíaDeLaSemanapuede ser uno de los siguientes valores:

-vbSunday – utiliza el domingo como primer día de la semana.

-vbMonday – utiliza el lunes como primer día de la semana.

-vbTuesday – utiliza el martes como primer día de la semana.

-vbWednesday – utiliza el miércoles como primer día de la semana.

-vbThursday – utiliza el jueves como primer día de la semana.

-vbFriday – utiliza el viernes como primer día de la semana.

-vbSaturday – utiliza el sábado como primer día de la semana.

-vbUseSystemDayOfTheWeek – utiliza el primer día de la semana especificado en la configuración del sistema.

  • PrimeraSemanaDelAño(Opcional) – Una constante que especifica la primera semana del año. Si está en blanco, se utiliza la semana del 1 de enero como primera semana del año. PrimeraSemanaDelAño puede ser uno de los siguientes valores:

-vbFirstJan1 – utiliza la semana que contiene el 1 de enero.

-vbFirstFourDays – utiliza la primera semana que contiene al menos cuatro días en el nuevo año.

-vbFirstFullWeek – utiliza la primera semana completa del año.

-vbSystem – utiliza la primera semana del año especificada en la configuración del sistema.

El siguiente código muestra cómo utilizar la función DatePart:

Sub UsandoLaFuncionDatePart()

    Dim parteDeFecha As Integer
    
    parteDeFecha = DatePart("yyyy", "12/12/2009")
    
    Debug.Print parteDeFecha

End Sub

El resultado es:

Resultado Función DatePart

 

Función DateSerial de VBA

La función DateSerial de VBA toma un año, mes y día y devuelve una fecha.

La sintaxis de la función DateSerial es: DateSerial(Año, Mes, Día) donde:

  • Año – Un valor entero entre 100 y 9999 que representa el año.
  • Mes – Un valor entero que representa el mes.
  • Día – Un valor entero que representa el día.

El siguiente código muestra cómo utilizar la Función DateSerial:

Sub UsandoLaFuncion_DateSerial()

    Dim fecha As Date
    
    fecha = DateSerial(2022, 10, 13)
    
    Debug.Print fecha

End Sub

El resultado es:

Resultado Función DateSerial

Función DateValue de VBA

La función DateValue devuelve una fecha cuando se le da una representación de cadena de una fecha.

La sintaxis de la función DateValue es: DateValue(Fecha) donde:

  • Fecha – Una cadena que representa la fecha.

El siguiente código muestra cómo utilizar la función DateValue:

Sub UsandoLaFuncion_DateValue()

    Dim fecha As Date
    
    fecha = DateValue("Octubre, 13, 1985")
    
    Debug.Print fecha

End Sub

El resultado es:

Resultado Función DateValue

 

Función Day de VBA

Puede utilizar la función Día para obtener el día de una fecha introducida.

La sintaxis de la función día es: Day(Valor_fecha) donde:

  • Valor_fecha – La fecha de la que quieres extraer el día.

El siguiente código muestra cómo utilizar la Función Day:

Sub UsandoLaFuncion_Day()

    Dim dia As Integer
    
    dia = Day("13/10/2022")
    
    Debug.Print dia

End Sub

El resultado es:

Resultado Función Day

 

Función Hour  de VBA

Puede utilizar la función Hour para obtener la hora de una entrada.

La sintaxis de la Función Hour es:

Hour(Tiempo) donde:

  • Tiempo – El tiempo (momento) del que quieres extraer la hora.

El siguiente código muestra cómo utilizar la Función Hour:

Sub UsandoLaFuncion_Hora()
 
    Dim hora As Integer
    
    hora = Hour("2:14:17 AM")
    
    Debug.Print hora

End Sub

El resultado es:

Resultado Función Hour

 

Función Minute de VBA

Puede utilizar la función Minute para devolver el valor del minuto de una hora de entrada.

La sintaxis de la Función Minute es: Minute(Tiempo) donde:

  • Tiempo – La hora de la que quieres extraer el valor de los minutos.

El siguiente código muestra cómo utilizar la Función Minute:

Sub UsandoLaFuncion_Minute()
 
    Dim minutos As Integer
    
    minutos = Minute("2:14:17 AM")
    
    Debug.Print minutos

End Sub

El resultado es:

Resultado Función Minute

 

Función Second de VBA

Puede utilizar la Función Second para devolver los segundos de un tiempo de entrada.

La sintaxis de la Función Second es: Second(Tiempo) donde:

  • Tiempo – La hora de la que quiere extraer los segundos.

El siguiente código muestra cómo utilizar la función Second:

Sub UsandoLaFuncion_Second()
 
    Dim segundos As Integer
    
    segundos = Second("2:14:17 AM")
    
    Debug.Print segundos

End Sub

El resultado es:

Resultado Función Second

 

Función Month de VBA

Puede utilizar la función Month para obtener el mes de una fecha introducida.

La sintaxis de la Función Month es: Month(Valor_fecha) donde:

  • Valor_fecha – La fecha de la que quieres extraer el mes.

El siguiente código muestra cómo utilizar la Función Month:

Sub UsandoLaFuncion_Month()
 
    Dim mes As Integer
    
    mes = Month("13/10/2022")
    
    Debug.Print mes

End Sub

El resultado es:

Resultado Función Month

 

Función MonthName de VBA

Puede utilizar la función MonthName para obtener el nombre de un mes a partir de un número de mes introducido.

La sintaxis de la función MonthName es: MonthName(Número_del_mes, [Abreviar]) donde:

  • Número_del_mes – Un valor entero entre 1 y 12.
  • Abreviar(Opcional) – Especifica si el nombre del mes debe abreviarse. Si está en blanco se utiliza el valor por defecto False.
Sub UsandoLaFuncion_MonthName()
 
    Dim nombre_del_mes As String
    
    nombre_del_mes = MonthName(12, True)
    Debug.Print nombre_del_mes

End Sub

El resultado es:

Resultado Función MonthName

 

Función TimeSerial de VBA

La función TimeSerial toma una entrada de hora, minuto y segundo y devuelve una hora (tiempo).

La sintaxis de la función TimeSerial es: TimeSerial(Hora, Minuto, Segundo) donde:

  • Hora – Un valor entero entre 0 y 23 que representa el valor de la hora.
  • Minuto – Un valor entero entre 0 y 59 que representa el valor del minuto.
  • Segundo – Un valor entero entre 0 y 59 que representa el valor del segundo.

El siguiente código muestra cómo utilizar la Función TimeSerial:

Sub UsandoLaFuncion_TimeSerial()

    Dim hora As Date
    
    hora = TimeSerial(1, 10, 15)
    
    Debug.Print hora

End Sub

El resultado es:

Resultado Función TimeSerial

Función TimeValue de VBA

La Función TimeValue devuelve una Hora a partir de una representación de cadena de fecha u hora.

La sintaxis de la función TimeValue es: TimeValue(Hora) donde:

  • Hora – Una Cadena que representa la hora.

El siguiente código muestra cómo utilizar la función TimeValue:

Sub UsandoLaFuncion_TimeValue()

    Dim hora As Date
    hora = TimeValue("22:10:17")
    
    Debug.Print hora

End Sub

El resultado es:

Resultado Función TimeValue

 

Función Weekday de VBA

Puede utilizar la función WeekDay para devolver un número entero del 1 al 7 que represente un día de la semana a partir de una fecha de entrada.

La sintaxis de la Función Weekday es: Weekday(Date, [PrimerDíaDeSemana]) donde:

  • Date – La fecha de la que desea extraer el valor del día de la semana.
  • PrimerDíaDeSemana(Opcional) – Una constante que especifica el día de la semana que la función debe utilizar como primer día de la semana. Si está en blanco, se utiliza el domingo como primer día de la semana. PrimerDíaDeSemana puede ser uno de los siguientes valores:

-vbSunday – utiliza el domingo como primer día de la semana.

-vbMonday – utiliza el lunes como primer día de la semana.

-vbTuesday – utiliza el martes como primer día de la semana.

-vbWednesday – utiliza el miércoles como primer día de la semana.

-vbThursday – utiliza el jueves como primer día de la semana.

-vbFriday – utiliza el viernes como primer día de la semana.

-vbSaturday – utiliza el sábado como primer día de la semana.

-vbUseSystemDayOfTheWeek – utiliza el primer día de la semana especificado en la configuración del sistema.

El siguiente código muestra cómo utilizar la función de día de la semana:

Sub UsandoLaFuncion_Weekday()

    Dim diaDeLaSemana As Integer
    diaDeLaSemana = Weekday("06/12/2022", vbMonday)
    Debug.Print diaDeLaSemana

End Sub

El resultado es:

Resultado Función Weekday

 

Función WeekdayName de VBA

Puede utilizar la función WeekdayName para obtener el nombre de un día de la semana a partir de un número de día de la semana introducido.

La sintaxis de la función WeekdayName es: WeekdayName(DiaDeLaSemana, [Abreviar], [PrimerDiaDeLaSemana]) donde:

  • DiaDeLaSemana – Un valor entero entre 1 y 7.
  • Abreviar(Opcional) – Especifica si el nombre del día de la semana debe abreviarse. Si está en blanco, se utiliza el valor por defecto False.
  • PrimerDiaDeLaSemana(Opcional) – Una constante que especifica el día de la semana que la función debe utilizar como primer día de la semana. Si está en blanco, se utiliza el domingo como primer día de la semana. PrimerDiaDeLaSemana puede ser uno de los siguientes valores:

-vbSunday – utiliza el domingo como primer día de la semana.

-vbMonday – utiliza el lunes como primer día de la semana.

-vbTuesday – utiliza el martes como primer día de la semana.

-vbWednesday – utiliza el miércoles como primer día de la semana.

-vbThursday – utiliza el jueves como primer día de la semana.

-vbFriday – utiliza el viernes como primer día de la semana.

-vbSaturday – utiliza el sábado como primer día de la semana.

-vbUseSystemDayOfTheWeek – utiliza el primer día de la semana especificado en la configuración del sistema.

El siguiente código muestra cómo utilizar la función de día de la semana:

Sub UsandoLaFunción_WeekdayName()
 
    Dim NombreDiaDeSemana As String
    
    NombreDiaDeSemana = WeekdayName(4)
    Debug.Print NombreDiaDeSemana

End Sub

El resultado es:

Resultado Función WeekdayName

Función Year de VBA

Puede utilizar la función Year para obtener el año de una fecha introducida.

La sintaxis de la función Year es: Year(Valor_fecha) donde:

  • Valor_fecha – La fecha de la que quieres extraer el año.

El siguiente código muestra cómo utilizar la Función Year:

Sub UsandoLaFuncion_Year()

    Dim año As Integer
    
    año = Year("11/12/2010")
    Debug.Print año

End Sub

El resultado es:

Resultado Función Year

 

Comparación de Fechas en VBA

Puede comparar fechas utilizando los operadores >, < e = en VBA.

El siguiente código muestra cómo comparar dos fechas en VBA.

Sub CompararFechas()

    Dim Fecha1 As Date
    Dim Fecha2 As Date
    
    Fecha1 = "10/10/2010"
    Fecha2 = "11/11/2010"
    
    If Fecha1 > Fecha2 Then
        Debug.Print "La Fecha1 es la fecha más reciente"
    
    ElseIf Fecha1 = Fecha2 Then
        Debug.Print "Las dos fechas son iguales"
    
    Else
        Debug.Print "La Fecha2 es la fecha más reciente"
    
    End If
End Sub

El resultado es:

Resultado Comparar Fechas en VBA

Aprenda más acerca de cómo Formato de fechas como cadenas de ver este tutorial.

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples