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?

Túto šablónu VBA typu String to Date Excel si môžete stiahnuť tu - Šablónu VBA typu String to Date Excel

Príklad č

Po vyhlásení a priradení premennej VBA k reťazcu bude so všetkým, čo je k tejto premennej priradené, zaobchádzané 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ódovom premennom „k“ definovanom ako dátový typ „String“ a pre túto premennú 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 schránke správ, 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 zobrazil výsledok ako „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 použil funkciu FORMAT na použitie formátu 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ý dátumový formát bol „MM-DD-RRRR“, zobrazoval sa 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ú údaje dlhé vo viac ako jednej bunke, je potrebné prechádzať každou bunkou. „Otvoriť pre slučku pre k = 2 až 12“ Údaje začínajú od 2. riadku a končia sa v 12. riadku, teda 2 až 12 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 poradové čísla, takže na ich zobrazenie ako dátumov je potrebné formátovanie.