Comprensión de la función IsDate de Excel VBA

La función IsDate de VBA supuestamente le dice si una cadena de texto se puede interpretar como una fecha. Por ejemplo, todas las siguientes expresiones se evalúan como Verdadero:

IsDate ("25/5/2015")
IsDate ("16 de enero")
IsDate ("12-1")
IsDate ("1/12/15")
IsDate ("2/30")
IsDate ("30/2")

En los dos últimos ejemplos, observe que IsDate no es exigente con el orden del día y el mes. Ambas cadenas podrían interpretarse como una fecha, por lo que IsDate devuelve True (independientemente de la configuración del formato de fecha del sistema).

Aquí hay información de un artículo de soporte de Microsoft :

Las funciones de fecha de VBA IsDate, Format, CDate y CVDate utilizan una función que se encuentra en OLE Automation (OleAut32.dll). Esta función busca todos los formatos de fecha posibles mediante la tokenización de cada uno de los valores separados en la cadena que representa la fecha y devuelve un valor booleano que indica si la entrada se puede representar como una fecha.

Es importante recordar esto al utilizar la función para interpretar una fecha que contiene un año de 2 dígitos. Las diferentes configuraciones regionales utilizan varios formatos de fecha (es decir, mm / dd / aa, aa / mm / dd, " DD MMM YY " , " YY MMM DD " , etc.) y, por lo tanto, la función prueba los dígitos en todas las posiciones hasta que La función ha encontrado una fecha válida o ha agotado todas las posibilidades.

El hecho de que IsDate reconozca una cadena como una fecha no significa que la cadena se pueda convertir de manera confiable en una fecha. En algunos casos, el resultado es ambiguo. Por ejemplo, ¿qué pasa con esta expresión?

IsDate ("29-feb-01")

El 29 de febrero de 2001 no es una fecha válida. Sin embargo, esta expresión devuelve Verdadero porque el 1 de febrero de 1929 (y el 2 de enero de 1929) son fechas válidas. Y también lo son esas mismas fechas en 2029.

La búsqueda de la documentación de IsDate resultó vacía. Según las pruebas, IsDate acepta cualquiera de los siguientes caracteres como separador: una barra inclinada (/), un guión (-), una coma (,), un punto (.) Y un espacio.

Por lo tanto, las siguientes expresiones devuelven True:

IsDate ("5.1")
IsDate ("30 6")
IsDate ("30,6")
IsDate ("1/2")

Pero luego está esta anomalía: las siguientes expresiones devuelven True:

IsDate ("5.1.5")
IsDate ("5.1.05")

Sin embargo, de forma inexplicable, esta expresión devuelve False:

IsDate ("5.1.2005")

Suponga que creó un UserForm con un InputBox donde el usuario ingresa una fecha. Debe quedar claro que usar IsDate para validar la entrada no es muy confiable.

Las cosas se vuelven aún más confusas cuando se da cuenta de que IsDate también cubre valores de tiempo. (No hay una función IsTime correspondiente). Por lo tanto, las siguientes expresiones devuelven True:

IsDate ("4:45")
IsDate ("4.45")
IsDate ("4 45")
IsDate ("4/45")
IsDate ("23:59")

Estas expresiones devuelven falso:

IsDate ("4:60")
IsDate ("24,45")

Es importante señalar que IsDate no exhibe todas estas peculiaridades cuando pasa un argumento Range. Por ejemplo:

IsDate (rango ("A1"))

Parece que IsDate es perfectamente confiable para identificar celdas que contienen una fecha o una hora. Por ejemplo, no identifica una celda que contiene 5.1 como fecha. Si su código necesita determinar si una cadena se puede interpretar como una fecha, la mejor solución es poner esa cadena en una celda y luego escribir código para verificar el contenido de la celda.

Leave a Comment

Cómo programar una reunión de Skype

Cómo programar una reunión de Skype

Aprenda a programar reuniones efectivas en Skype Empresarial desde Outlook o la aplicación de Skype. Siga nuestros sencillos pasos para una mejor colaboración.

Cómo usar Pegado especial en Excel 2016

Cómo usar Pegado especial en Excel 2016

Aprende a usar la función de Pegado Especial en Excel 2016 para optimizar la forma en que insertas datos en tus hojas de cálculo. Controla qué información se pega y realiza operaciones matemáticas simples con facilidad.

Funciones de Excel para trabajar con números hexadecimales, octales, decimales y binarios

Funciones de Excel para trabajar con números hexadecimales, octales, decimales y binarios

Descubre las funciones de Excel para convertir entre binario, octal, decimal y hexadecimal con esta tabla informativa y consejos útiles para optimizar tu trabajo.

Instalar y activar un complemento de Power Query de Excel

Instalar y activar un complemento de Power Query de Excel

Completa guía sobre cómo instalar y activar el complemento de Power Query en Excel 2010 y 2013, y su uso en Excel 2016. Aprende a gestionar datos de manera efectiva en Excel.

Access 2019: Cómo editar y modificar una base de datos de Access

Access 2019: Cómo editar y modificar una base de datos de Access

Aprende a modificar y editar bases de datos en Access 2019, incluyendo cómo nombrar campos, agregar y eliminar campos, y definir tipos de datos. ¡Optimiza tu trabajo con Access!

Cómo usar el comando Ir a en Word 2016

Cómo usar el comando Ir a en Word 2016

El comando Ir a en Word 2016 es una herramienta poderosa para navegar rápidamente a una página específica o a elementos dentro del documento. Aprende a optimizar tu flujo de trabajo con este práctico comando.

Cómo resaltar fechas de fin de semana en Excel

Cómo resaltar fechas de fin de semana en Excel

Aprende cómo resaltar fechas de fin de semana en Excel utilizando formato condicional para mejorar la gestión de tus datos de programación.

Cómo insertar un enlace para enviar un correo electrónico en una hoja de cálculo de Excel 2010

Cómo insertar un enlace para enviar un correo electrónico en una hoja de cálculo de Excel 2010

Aprenda a insertar un hipervínculo "mailto" en Excel 2010 para crear correos electrónicos de manera simple y eficiente.

Cómo usar las opciones de pegado y Pegado especial en Word 2007

Cómo usar las opciones de pegado y Pegado especial en Word 2007

Aprenda a utilizar las opciones de pegado y Pegado especial en Word 2007 para manejar eficazmente bloques de texto. Optimizando su formato y presentación.

Cómo modificar un gráfico SmartArt en PowerPoint

Cómo modificar un gráfico SmartArt en PowerPoint

Descubre cómo modificar un gráfico SmartArt en PowerPoint incluyendo cambios de diseño, estructura y texto. Mejora tus presentaciones con estos consejos SEO.