Hem Sociala medier Förstå Excel VBA IsDate-funktionen - dummies

Förstå Excel VBA IsDate-funktionen - dummies

Video: Skapa en VBA-funktion med Excel 2010 2025

Video: Skapa en VBA-funktion med Excel 2010 2025
Anonim

VBAs IsDate-funktion talar förmodligen om en textsträng kan tolkas som ett datum. Till exempel utvärderar alla följande uttryck till True:

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

I de två senaste exemplen märker du att IsDate inte är picky om dagens och månadens ordning. Båda dessa strängar kan tolkas som ett datum, så IsDate returnerar True (oavsett inställningar för systemdatumsformat).

Här finns en del information från en Microsoft Support-artikel:

VBA-datumfunktionerna IsDate, Format, CDate och CVDate använder en funktion som finns i OLE Automation (OleAut32. Dll). Denna funktion söker alla möjliga datumformat genom att tokenera varje av de separerade värdena i strängen som representerar datumet och returnerar ett booleskt värde som anger huruvida ingången kan representeras som ett datum.

Detta är viktigt att komma ihåg när du använder funktionen för att tolka ett datum som innehåller ett 2-siffrigt år. Olika platser använder olika datumformat (det vill säga mm / dd / yy, yy / mm / dd, " DD MMM YY " , " ÅÅ MMM DD " osv.) Och därför försöker funktionen siffrorna i alla positioner tills funktionen har hittat ett giltigt datum eller uttömt alla möjligheter.

Bara för att IsDate känner igen en sträng som ett datum betyder det inte att strängen kan konverteras tillförlitligt till ett datum. I vissa fall är resultatet tvetydigt. Till exempel, vad sägs om detta uttryck?

IsDate ("29 feb-01")

29 februari 2001 är inte ett giltigt datum. Men detta uttryck returnerar True eftersom 1 februari 1929 (och 2 januari 1929) är giltiga datum. Och det är samma datum 2029.

En sökning efter IsDate-dokumentationen kom upp tom. Baserat på test accepterar IsDate något av följande som separatortecken: ett snedstreck (/), en bindestreck (-), ett komma (,), en punkt (.) Och ett mellanslag.

Därför returneras följande uttryck alla True:

IsDate ("5. 1") IsDate ("30 6") IsDate ("30, 6") IsDate ("1/2")

Men då är det här avvikelsen: Följande uttryck returnerar True:

IsDate ("5, 1. 5") IsDate ("5. 1. 05")

Detta uttryck uttrycker emellertid inte False:

IsDate ("5. 1. 2005")

Antag att du skapade en UserForm med en InputBox där användaren anger ett datum. Det bör vara klart att användandet av IsDate för att validera posten inte är mycket tillförlitlig.

Saker blir ännu mer förvirrande när du inser att IsDate också täcker tidsvärden. (Det finns ingen motsvarande IsTime-funktion.) Så följande returnerar alla True:

IsDate ("4: 45") IsDate ("4. 45") IsDate ("4 45") IsDate ") IsDate (" 23: 59 ")

Dessa uttryck returnerar False:

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

Det är viktigt att påpeka att IsDate inte uppvisa alla dessa quirks när du passerar ett Range argument. Till exempel:

IsDate (Range ("A1"))

Det verkar som om IsDate är helt tillförlitlig vid identifiering av celler som innehåller datum eller tid. Det identifierar exempelvis inte en cell som innehåller 5. 1 som ett datum. Om din kod behöver bestämma huruvida en sträng kan tolkas som ett datum, är den bästa lösningen att sätta den här strängen i en cell och skriv sedan kod för att kontrollera innehållet i cellen.

Förstå Excel VBA IsDate-funktionen - dummies

Redaktörens val

Vad är en Java-karta? - dummies

Vad är en Java-karta? - dummies

Arrays och specialiserade listor gör det möjligt att utföra en fantastisk uppsättning uppgifter med Java. Det finns dock situationer där en Java-applikation behöver något som är mer relaterat till en databas, utan att egentligen ha allt databasbagage (som att behöva köpa en separat applikation). Till exempel kanske du vill kunna ...

Några få saker om Java Math - dummies

Några få saker om Java Math - dummies

Tro det eller inte, datorer - även de mest kraftfulla - Ha vissa begränsningar när det gäller att utföra matematiska beräkningar. Dessa begränsningar är vanligtvis obetydliga, men ibland slår de sig och biter på dig. Här är de saker du behöver se upp för när du gör matte i Java. Helhetsflöde Det grundläggande problemet ...

Vad är recursion i Java Programmering? - dummies

Vad är recursion i Java Programmering? - dummies

Rekursion är en grundläggande programmeringsteknik som du kan använda i Java, där en metod kallar sig för att lösa ett problem. En metod som använder denna teknik är rekursiv. Många programmeringsproblem kan lösas endast genom rekursion, och vissa problem som kan lösas med andra tekniker löses bättre genom rekursion. En av ...

Redaktörens val

4 Måste-inkludera i din blogg sidobardesign - dummies

4 Måste-inkludera i din blogg sidobardesign - dummies

Din bloggens sidofält är viktig fastighet som bör innehålla de element du vill ha mest. När du utformar din blogg sidofält kan du dra från en nästan oändlig lista över sidospårelement. Genom att välja noggrant vad som ska inkluderas (och vad som inte ska inkluderas) kan du ställa in din blogg från andra.

5 Användbara Wordpress Plugins - dummies

5 Användbara Wordpress Plugins - dummies

Om du bloggar på en självhävd plattform med WordPress-programvara, är det dags att anpassa din blogg med plug-ins - programvara som kan "anslutas" till din befintliga WordPress bloggprogramvara. Plug-ins gör det möjligt för dig att göra allt från funktionsbildspel i dina blogginlägg för att ansluta sociala medier till din webbplats. Här är fem användbara ...

7 Sätt att erövra Writer's Block som en Blogger - dummies

7 Sätt att erövra Writer's Block som en Blogger - dummies

Varje bloggare möter författarens block i ett tid eller annan. Om du är den typ av bloggare som sköter innehåll varje dag, kan författarens block vara stäverande. Kan du inte ta en paus för att få ditt skrivande mojo tillbaka? Prova en (eller flera) av dessa sju sätt att slå författarens block för att få dig tillbaka ...

Redaktörens val

10 Stora elektronikkomponentkällor - dummies

10 Stora elektronikkomponentkällor - dummies

Letar du efter några bra källor till dina elektroniska delar? Denna lista ger dig några fleråriga favoriter, både inom och utanför Nordamerika. Denna lista är inte uttömmande. Du hittar bokstavligen tusentals specialutbud för ny och begagnad elektronik. Plus, Amazon och eBay ger virtuella marknadsplatser för alla sorters säljare - ...

Elektronik Basics: Resistance - dummies

Elektronik Basics: Resistance - dummies

I elektronikvärlden är motståndet inte meningslöst. Faktum är att motstånd kan vara mycket användbart. Utan motstånd skulle elektronik inte vara möjligt. Elektronik handlar om att manipulera strömmen av ström, och ett av de mest grundläggande sätten att manipulera strömmen är att minska det genom resistans. Utan motstånd strömmar strömmen oreglerad och där ...

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

För att berätta för BASIC Stamp vad du vill göra i ditt digitala elektronikprojekt måste du programmera det. BASIC Stamp Windows Editor är den programvara som du använder på din dator för att skapa program som kan laddas ner till en BASIC Stamp-mikrokontroller. Denna programvara är tillgänglig gratis från Parallax webbplats. ...