Comprensione della funzione IsDate VBA di Excel

La funzione IsDate di VBA presumibilmente ti dice se una stringa di testo può essere interpretata come una data. Ad esempio, tutte le seguenti espressioni restituiscono True:

È Data(“25/05/2015”)
IsDate(“16 gennaio”)
È Data(“12-1”)
È Data(“1/12/15”)
È Data(“2/30”)
È Data(“30/2”)

Negli ultimi due esempi, si noti che IsDate non è schizzinoso riguardo all'ordine del giorno e del mese. Entrambe queste stringhe potrebbero essere interpretate come una data, quindi IsDate restituisce True (indipendentemente dalle impostazioni del formato della data del sistema).

Ecco alcune informazioni da un articolo del supporto Microsoft :

Le funzioni di data VBA IsDate, Format, CDate e CVDate utilizzano una funzione trovata in automazione OLE (OleAut32.dll). Questa funzione cerca tutti i possibili formati di data tokenizzando ciascuno dei valori separati nella stringa che rappresenta la data e restituisce un valore booleano che indica se l'input può essere rappresentato come una data.

Questo è importante da ricordare quando si utilizza la funzione per interpretare una data che contiene un anno a 2 cifre. Locali differenti utilizzano diversi formati di data (cioè, mm/gg/aa, aa/mm/gg, GG MMM AA , AA MMM GG , e così via) e quindi la funzione prova le cifre in tutte le posizioni fino la funzione ha trovato una data valida o ha esaurito tutte le possibilità.

Solo perché IsDate riconosce una stringa come data non significa che la stringa possa essere convertita in modo affidabile in una data. In alcuni casi, il risultato è ambiguo. Ad esempio, che dire di questa espressione?

IsDate(“29-Feb-01”)

Il 29 febbraio 2001 non è una data valida. Tuttavia, questa espressione restituisce True perché 1 febbraio 1929 (e 2 gennaio 1929) sono date valide. E così sono quelle stesse date nel 2029.

La ricerca della documentazione IsDate è risultata vuota. In base ai test, IsDate accetta uno dei seguenti caratteri separatori: una barra (/), un trattino (-), una virgola (,), un punto (.) e uno spazio.

Pertanto, le seguenti espressioni restituiscono tutte True:

È Data(“5.1”)
È Data(“30 6”)
È Data(“30,6”)
È Data(“1/2”)

Ma poi c'è questa anomalia: le seguenti espressioni restituiscono True:

È Data(“5.1.5”)
È Data(“5.1.05”)

Tuttavia, in modo non esplicito, questa espressione restituisce False:

È Data(“5.1.2005”)

Supponiamo di aver creato un Form utente con un InputBox in cui l'utente immette una data. Dovrebbe essere chiaro che l'utilizzo di IsDate per convalidare la voce non è molto affidabile.

Le cose si fanno ancora più confuse quando ti rendi conto che IsDate copre anche i valori temporali. (Non esiste una funzione IsTime corrispondente.) Quindi, le seguenti espressioni restituiscono tutte True:

È Data(“4:45”)
È Data(“4.45”)
È Data(“4 45”)
È Data(“4/45”)
È Data(“23:59”)

Queste espressioni restituiscono False:

È Data(“4:60”)
È Data(“24.45”)

È importante sottolineare che IsDate non mostra tutte queste stranezze quando si passa un argomento Range. Per esempio:

IsDate(Intervallo(“A1”))

Sembra che IsDate sia perfettamente affidabile nell'identificare le celle che contengono una data o un'ora. Ad esempio, non identifica una cella che contiene 5.1 come data. Se il tuo codice deve determinare se una stringa può essere interpretata come una data, la soluzione migliore è inserire quella stringa in una cella e quindi scrivere il codice per controllare il contenuto della cella.


Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet è una piattaforma di lavoro dinamica che ti consente di gestire progetti, creare flussi di lavoro e collaborare con il tuo team.

SharePoint

SharePoint

SharePoint è un sistema di collaborazione basato sul Web che utilizza una varietà di applicazioni per flussi di lavoro, database di "elenco" e altri componenti Web, nonché funzionalità di sicurezza per fornire controllo ai gruppi aziendali che lavorano insieme.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar è un'applicazione per la visualizzazione del calendario sul tuo telefono, che ti aiuta a vedere rapidamente la data lunisolare sul tuo telefono, organizzando così il tuo lavoro importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook è un'applicazione aziendale e di produttività sviluppata da Microsoft Corporation.

Fare clic su

Fare clic su

ClickUp è una delle piattaforme di produttività più apprezzate per qualsiasi azienda. Grandi aziende come Google, Booking.com, San Diego Padres e Uber utilizzano ClickUp per aumentare la produttività sul posto di lavoro.

Visualizzatore PDF-XChange 2.5.322.10

Visualizzatore PDF-XChange 2.5.322.10

Il PDF è diventato un formato comunemente utilizzato per leggere, creare e inviare documenti di testo. A sua volta, c'è stato un aumento del numero di programmi utilizzati per questo tipo di documentazione. PDF-XChange Viewer fa parte di un numero crescente di visualizzatori PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice offre una suite completa di applicazioni Office che rivaleggiano con Microsoft 365, in particolare in Excel, PowerPoint e Word. Ti consente di gestire i tuoi progetti in modo più efficace e supporta diversi formati di file.

Scarica iTaxviewer 1.8.7

Scarica iTaxviewer 1.8.7

Il software iTaxViewer è il software di lettura di file XML più popolare oggi. Questo software è un'applicazione per la lettura delle dichiarazioni fiscali elettroniche in formato XML del Dipartimento Generale delle Imposte.

Lettore PDF Nitro

Lettore PDF Nitro

Nitro PDF Reader è un pratico editor PDF che copre tutte le attività di base che la maggior parte delle persone esegue ogni giorno con i documenti PDF.

Foxit Reader 12

Foxit Reader 12

Foxit Reader è principalmente un lettore PDF e consente anche di creare file PDF, firmarli, modificarli e aggiungere annotazioni. Funziona su sistemi operativi, ci sono plugin per vari programmi del pacchetto Microsoft Office.