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 2024

Video: Skapa en VBA-funktion med Excel 2010 2024
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

Hur man ändrar bakgrunds- och textfärger i Dreamweaver - dummies

Hur man ändrar bakgrunds- och textfärger i Dreamweaver - dummies

I Dreamweaver, du kan ändra bakgrunden och de textfärger som finns tillgängliga i kategorin Utseende. Observera att CSS-alternativen rekommenderas via HTML-alternativ. När du använder alternativen Utseende (CSS) skapar Dreamweaver motsvarande stilar för kroppstaggen automatiskt. När du använder några CSS-alternativ i dialogrutan Sidegenskaper, Dreamweaver ...

Redaktörens val

Hur du formaterar text i Word 2007 - dummies

Hur du formaterar text i Word 2007 - dummies

Word 2007 låter dig formatera text antingen medan du skriver eller efter att du har skrivit. Med den första tekniken väljer du först ett textformateringskommando och skriver sedan texten. All text du skriver är formaterad som vald. För mer komplex formatering är det bättre att skriva texten först, gå tillbaka, markera ...

Hur man formaterar ett bord i Word 2010 - dummies

Hur man formaterar ett bord i Word 2010 - dummies

För att formatera ett bord i Word 2010 en rad, justera bredden på ett tabellelement - du kan använda Words tabeller Tabellverktyg efter att bordet har skapats. Tabellerna Tabellverktyg visas bara när en tabell redigeras eller markeras. Och den bästa tiden att formatera och ...

Hur du formaterar text med Word 2007 Format Painter - dummies

Hur du formaterar text med Word 2007 Format Painter - dummies

Du kan använda Word 2007 Formatera Painter för att snabbt kopiera tecken och styckeformatering från en bit text till en annan. Formatfärgen fungerar bara om du redan har lite text formaterad som du vill. Du kan använda formateraren för att formatera en sektion eller flera sektioner av text. Till ...

Redaktörens val

Skala din SketchUp-modell tills fotot ser rätt ut - dummies

Skala din SketchUp-modell tills fotot ser rätt ut - dummies

När du är nöjd med vägen Din textur sträcker sig för att passa ett ansikte i din SketchUp-modell, en av två saker kommer att vara sanna: proportionerna är korrekta. Bilden ser inte utsträckt eller squashed. Detta är bara fallet om ansiktet som du använde fotokonsttexten redan var exakt på ...

SketchUp Pro 2014s nya klassificeringsverktyg - dummies

SketchUp Pro 2014s nya klassificeringsverktyg - dummies

SketchUp Pro 2014 introducerade ett nytt verktyg som heter Classifier. Om du använder Pro kan du märka grupper och komponenter (som nu kollektivt kallas objekt) med information om vad de är. När du delar din modell med personer som använder sofistikerade BIM-modeller (Building Information Modeling), kan de lättare integrera det ...

Storlekar Mater När 3D-utskrift SketchUp-modeller

Storlekar Mater När 3D-utskrift SketchUp-modeller

Har alla 3D-skrivare en minimal och maximal storlek på objektet kan bygga. Dessa storlekar bestäms vanligtvis av storleken på verktyget som skriver ut materialet och av den totala storleken på skrivaren. Att bygga något större måste du bli kreativ. För att bygga något mindre behöver du en dyrare 3D ...