Aprenda a trabajar con fechas y horas en Excel VBA .

Coloque un botón de comando en su hoja de trabajo y agregue las líneas de código a continuación. Para ejecutar las líneas de código, haga clic en el botón de comando en la hoja.

Año, mes, día de una fecha

La siguiente macro obtiene el año de una fecha. Para declarar una fecha, use la instrucción Dim. Para inicializar una fecha, use la función DateValue.

Código:

Dim exampleDate As Date

exampleDate = DateValue("Jan 19, 2020")

MsgBox Year(exampleDate)

Resultado:

Año de una fecha en Excel VBA

Nota: Utilice Mes y día para obtener el mes y el día de una fecha.

DateAdd

Para agregar un número de días a una fecha, use la función DateAdd. La función DateAdd tiene tres argumentos. Complete "d" para el primer argumento para agregar días. Complete 3 para el segundo argumento para agregar 3 días. El tercer argumento representa la fecha a la que se agregará el número de días.

Código:

Dim firstDate As Date, secondDate As Date

firstDate = DateValue("Jan 19, 2020")
secondDate = DateAdd("d", 3, firstDate)

MsgBox secondDate

Resultado:

DateAdd

Nota: Cambie "d" por "m" para agregar un número de meses a una fecha. Coloque el cursor en DateAdd en el Editor de Visual Basic y haga clic en F1 para obtener ayuda sobre los otros especificadores de intervalo. Las fechas están en formato de EE. UU. Meses primero, días segundo. Este tipo de formato depende de la configuración regional de Windows.

Fecha y hora actual

Para obtener la fecha y hora actuales, use la función Ahora.

Código:

MsgBox Now

Resultado:

Fecha y hora actual

Hora, minuto, segundo

Para obtener la hora de una hora, use la función Hora.

Código:

MsgBox Hour(Now)

Resultado:

Hora de la hora actual

Nota: Utilice Minuto y Segundo para obtener el minuto y el segundo de un tiempo.

Valor del tiempo

La función TimeValue convierte una cadena en un número de serie de tiempo. El número de serie de la hora es un número entre 0 y 1. Por ejemplo, el mediodía (a la mitad del día) se representa como 0,5.

Código:

MsgBox TimeValue("9:20:01 am")

Resultado:

Valor del tiempo

Ahora, para ver claramente que Excel maneja los tiempos internamente como números entre 0 y 1, agregue las siguientes líneas de código:

Dim y As Double
y = TimeValue("09:20:01")
MsgBox y

Resultado:

Número de serie de tiempo

1/8 Completado! Obtenga más información sobre fechas y horarios>
Siguiente capítulo: Eventos