Compare fechas y horas en Excel VBA

Hola, mi nombre es Miguel y durante el dia de hoy os traigo un nuevo post.

Este ejemplo te enseña cómo hacerlo. comparar fechas y horas dentro Excel VBA. Las fechas y horas se almacenan como números en Excel y cuentan el número de días desde el 0 de enero de 1900. Lo que ve depende del formato del número.

1. Ingrese algunos números en la columna A.

Números

2. Estos números son fechas. Esta es una manera perfecta de ingresar algunas fechas sin preocuparse por el formato de la fecha. Cambie el formato a Fecha (haga clic con el botón derecho en la columna Encabezado, Dar formato a celdas y elija Fecha).

Resultado:

fechas

Nota: las fechas están en formato estadounidense. Los primeros meses, los segundos días. Este tipo de formato depende de la configuración regional de Windows.

Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

3. Declare la variable i de tipo Integer.

Oscuro me Cómo Entero

4. Agregue un bucle al siguiente.

5. La función Fecha devuelve la fecha actual sin la hora. Agrega la siguiente línea de código al bucle para resaltar todas las celdas que contienen la fecha actual (13/03/2020).

Celdas (i, 1) .Value = Fecha Entonces Celdas (i, 1) .Font.Color = vbRed

Resultado:

Fechas iguales a

6. Agregue la siguiente línea de código al bucle para resaltar todas las fechas anteriores al 19/4/2019.

Celdas (i, 1) .Valor Entonces Celdas (i, 1) .Font.Color = vbRed

Resultado:

Fechas anteriores a

7. Pero qué pasa con los tiempos, lo escuchamos decir. Son los decimales. Vuelve al formato General y cambia los números a números decimales.

Numeros decimales

8. Ahora cambie el formato al formato "Fecha y hora".

Formato de fecha y hora

Resultado:

Fechas y horas

9. Si desea resaltar todas las celdas que contienen la fecha actual, ya no podemos usar la línea de código para 5. ¿Por qué no? Porque ahora los números de la columna A son números decimales. Compararlo con Date (un número entero) no daría ninguna coincidencia. (¡Solo daría una coincidencia con 13/03/2020 exactamente a la medianoche!) La siguiente línea de código funciona:

Int (Celdas (i, 1). Valor) = Fecha Entonces Celdas (i, 1) .Font.Color = vbRed

Explicación: Simplemente usamos la función Int. La función Int redondea un número al entero más cercano. De esta forma podemos obtener las fechas sin las horas y compararlas con Date.

Resultado:

Fechas sin tiempos iguales a

10. Agregue la siguiente línea de código para resaltar todas las celdas que contienen horas de la mañana.

(Celdas (i, 1). Valor - Int (Celdas (i, 1). Valor)) Entonces Celdas (i, 1) .Font.Color = vbRed

Explicación: Solo necesitamos los decimales, entonces restamos la parte entera. El mediodía (al mediodía) se representa como 0,5. Los decimales por debajo de 0,5 son las horas de la mañana.

Resultado:

Tiempos de la mañana

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página utiliza Cookies. Más info