Saltar al contenido

Fecha de VBA como entero

Bienvenido a nuestra comunidad, aquí vas a encontrar la respuesta que estabas buscando.

Solución:

La fecha no es un número entero en VB (A), es un doble.

Puede obtener el valor de una fecha pasándolo a CDbl().

CDbl(Now())      ' 40877.8052662037 

De la documentación:

El sistema de fechas de 1900

En el sistema de fechas 1900, el primer día admitido es el 1 de enero de 1900. Cuando ingresa una fecha, la fecha se convierte en un número de serie que representa el número de días transcurridos que comienzan con 1 para el 1 de enero de 1900. Por ejemplo , si ingresa el 5 de julio de 1998, Excel convierte la fecha al número de serie 35981.

Entonces, en el sistema de 1900, 40877.805... representa 40 876 días después del 1 de enero de 1900 (29 de noviembre de 2011) y ~ 80,5% de un día (~ 19: 19h). Hay una configuración para el sistema basado en 1904 en Excel, los números estarán desactivados cuando esté en uso (esa es una configuración por libro de trabajo).

Para obtener la parte entera, use

Int(CDbl(Now())) ' 40877

que devolvería un LargoDoble sin lugares decimales (es decir, qué Floor() haría en otros idiomas).

Utilizando CLng() o Round() daría como resultado un redondeo, que devolverá un “día en el futuro” cuando se llame después de las 12:00 del mediodía, así que no hagas eso.

Solo usa CLng(Date).

Tenga en cuenta que necesita usar Long no Integer para esto, ya que el valor para la fecha actual es> 32767

Recuerda que tienes autorización de agregar una reseña .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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