Funciones de Fecha en VBA
In this Article
- Función Date de VBA
- Función Now de VBA
- Función Time de VBA
- Función DateAdd de VBA
- Función DateDiff de VBA
- Función DatePart de VBA
- Función DateSerial de VBA
- Función DateValue de VBA
- Función Day de VBA
- Función Hour de VBA
- Función Minute de VBA
- Función Second de VBA
- Función Month de VBA
- Función MonthName de VBA
- Función TimeSerial de VBA
- Función TimeValue de VBA
- Función Weekday de VBA
- Función WeekdayName de VBA
- Función Year de VBA
- Comparación de Fechas en VBA
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:
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 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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
Aprenda más acerca de cómo Formato de fechas como cadenas de ver este tutorial.