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.
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:
Nota: Utilice Mes y día para obtener el mes y el día de una fecha.
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:
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.
Para obtener la fecha y hora actuales, use la función Ahora.
Código:
MsgBox Now
Resultado:
Para obtener la hora de una hora, use la función Hora.
Código:
MsgBox Hour(Now)
Resultado:
Nota: Utilice Minuto y Segundo para obtener el minuto y el segundo de un 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:
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:
1/8 Completado! Obtenga más información sobre fechas y horarios>
Siguiente capítulo: Eventos