Reťazec VBA k dnešnému dňu Prevod reťazcových hodnôt na dátum v programe Excel VBA

Reťazec Excel VBA k dnešnému dňu

Vo Vba existuje metóda, prostredníctvom ktorej môžeme previesť daný reťazec na dátum, a táto metóda je známa ako funkcia CDATE vo vba, jedná sa o zabudovanú funkciu vo VBA a časti potrebné pre túto funkciu je najskôr previesť reťazec na číslo a potom prevedieme dané číslo na dátum. Formát výsledku závisí iba od formátu systémového dátumu.

Jedným z bežných problémov, s ktorými sa všetci stretávame v programe Excel, je dátum a čas. Často sa ukladajú ako textové hodnoty a na začiatku zostávajú bez povšimnutia. Ale keď budú musieť tento čas využiť, dozvieme sa, že tieto hodnoty sú uložené ako text a vôbec nevedia, ako s nimi naložiť. „Dátum a čas“ sú dve spojené veci v jednom prvku, ale akonáhle sú tieto hodnoty uložené ako textové hodnoty, je s nimi ťažké pracovať.

Ako previesť reťazcové hodnoty k dnešnému dňu?

Príklad č

Len čo je premenná VBA deklarovaná a priradená ako String, so všetkým, čo je k tejto premennej priradené, sa bude narábať iba ako s reťazcom. Napríklad si pozrite nasledujúci kód.

Kód:

Sub String_To_Date () Dim k As String k = "10-21" MsgBox k End Sub

Vo vyššie uvedenom kóde je premenná „k“ definovaná ako dátový typ „String“ a tejto premennej sme priradili hodnotu ako „10-21“.

Dobre, spustíme kód a uvidíme, čo dostaneme do schránky správ vo VBA.

Hodnotu sme dostali iba ako 10-21, ale zvyčajne sú to hodnoty dátumu, nie hodnoty reťazcov. Takže aj keď je priradený dátový typ „String“, môžeme stále prevádzať dáta pomocou funkcie prevodu dátového typu CDATE VBA.

Kód:

Sub String_To_Date () Dim k As String k = "10-21" MsgBox CDate (k) End Sub

Vo vyššie uvedenom texte, predtým, ako ukážeme výsledok premennej „k“ v okne správy, sme priradili funkciu CDATE. Vykoná sa malá úprava, pozrime sa, aký veľký vplyv to má.

Teraz by sme videli výsledok ako „Dátum“, nie ako hodnotu „String“.

Príklad č

Teraz sa pozrite na príklad nižšie v kóde.

Kód:

Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub

V tomto okamihu by kód zobrazoval výsledok „43599“, ako sme priradili vyššie.

Ale akonáhle použijeme funkciu CDATE, prevedie sa na hodnotu dátumu.

Kód:

Sub String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) End Sub

Výsledok po použití funkcie CDATE je nasledovný.

Pretože program Excel uložil dátum ako sériové čísla, naše pridelené sériové číslo 43599 sa rovná dátumu 14/14/2019, keď sa použije formát dátumu.

Na presné načítanie dátumu môžeme tiež použiť formát dátumu „DD-MMM-RRRR“.

Kód:

Sub String_To_Date1 () Dim k As String Dim DateValue As Date k = 43599 DateValue = CDate (k) MsgBox Format (DateValue, "DD-MMM-YYYY") End Sub

Vo vyššie uvedenom prípade som deklaroval jednu extra premennú na uloženie výsledku. Pre túto premennú som použil funkciu prevodu CDATE.

Ďalej som pomocou funkcie FORMAT použil formát formátu „DD-MMM-RRRR“ a výsledok bude uvedený nižšie.

Vďaka tomu dokážeme jasne prečítať časť dňa a mesiac. Závisí to aj od formátu vášho systémového dátumu v programe Excel. Pretože môj systémový formát dátumu bol „MM-DD-RRRR“, zobrazovalo sa to tak, ale to by nemalo byť prekážkou formátovania.

Príklad č

Teraz uvidíme, ako sú dátumy formátované ako textové hodnoty v bunkách pracovného hárka. Nižšie je uvedený obrázok dátumov uložených ako text v hárku.

V stĺpci A od A2 do A12 máme hodnoty vyzerajúce podľa dátumu, ale keď sa pozrieme na kartu formát, zobrazí sa formát „Text“. Teraz musíme tieto hodnoty previesť z textu na dnešný deň.

Nižšie uvádzam kód, ktorý som napísal na prevod textových hodnôt dátumu na skutočné dátumy.

Kód:

Sub String_To_Date2 () Dim k Pokiaľ sú dáta dlhé, majú viac ako jednu bunku, je teda potrebné prechádzať každou bunkou. Bunky (k, 2) .Hodnota = CDate (Bunky (k, 1) .Hodnota) Ďalej k Koniec Sub

Ak spustíte kód, prinesie nám výsledok uvedený nižšie.

Na čo treba pamätať

  • CDATE je funkcia prevodu dátových typov, ale dá sa použiť na prevod uloženého dátumu reťazca VBA na skutočné hodnoty dátumu.
  • Výsledok formátu funkcie CDATE závisí iba od formátu systémového dátumu.
  • Dátumy sa v programe Excel ukladajú ako sériové čísla, takže na ich zobrazenie ako dátumov je potrebné formátovanie.

Zaujímavé články...