VBA karakterlánc a mai napig | Karakterláncok konvertálása dátumra az Excel VBA alkalmazásban

Excel VBA karakterlánc a dátumig

A Vba-ban van egy módszer, amellyel egy adott karakterláncot dátumra konvertálhatunk, és a módszer CDATE függvényként ismert az vba-ban, ez egy beépített függvény a VBA-ban, és ehhez a funkcióhoz szükséges részek a karakterlánc először konvertálása számot, majd a megadott számot dátumra konvertáljuk. Az eredmény formátuma csak a rendszer dátum formátumától függ.

Az egyik gyakori probléma, amellyel mindannyian szembesülünk az excellel, a „Dátum és idő”, amelyet gyakran szöveges értékként tárolnak, és kezdetben észrevétlen marad. De amikor ezt az időt ki kell használniuk, megtudjuk, hogy ezeket az értékeket szövegként tárolják, és egyáltalán nem tudjuk, hogyan kell velük foglalkozni. A „Dátum és idő” két elem kombinálva van egy elemben, de ha ezeket az értékeket szöveges értékként tároljuk, akkor nehéz dolgozni.

Hogyan lehet konvertálni a karakterláncot dátumra?

Itt töltheti le ezt a VBA karakterlánc dátumig Excel sablont - VBA karakterlánc dátum Excel sablont

1. példa

Miután a VBA változót Stringként deklaráltuk és hozzárendeltük, a változóhoz hozzárendelteket csak stringként kezeljük. Például nézze meg az alábbi kódot.

Kód:

 Sub String_To_Date () Dim k As karakterlánc k = "10-21" MsgBox k End Sub 

A fenti „k” változóban, amelyet „String” adattípusként határozunk meg, ehhez a változóhoz az értéket „10-21” -ként rendeltük.

Ok, futtassuk a kódot, és nézzük meg, mit kapunk a VBA üzenetmezőjében.

Az érték csak 10-21, de általában ezek az értékek dátum, nem karakterlánc értékek. Tehát annak ellenére, hogy a hozzárendelt adattípus „String”, a CDATE VBA adattípus-konverziós függvény segítségével mégis konvertálhatunk dátumra.

Kód:

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

A fentiekben, mielőtt megmutatnánk a „k” változó eredményét az üzenetmezőben, hozzárendeltük a CDATE függvényt. Egy kis kiigazítás történik, nézzük meg, mekkora hatást vált ki.

Most azt látnánk, hogy az eredmény a „Dátum” nem „String” érték.

2. példa

Most nézzen meg egy példát az alábbi kódra.

Kód:

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

Ebben a pillanatban a fenti kód az eredményt "43599" -ként jelenítené meg, amint azt fentebb rendeltük.

De miután használjuk a CDATE függvényt, dátum értékre vált.

Kód:

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

A CDATE függvény alkalmazása után az eredmény a következő.

Mivel az excel a dátumot sorozatszámként tárolta, a hozzárendelt 43599 sorozatszám megegyezik a dátumformátum alkalmazásakor 2019. 05. 14. dátummal.

A dátum formátumát „NN-HH-ÉÉÉÉ” néven is alkalmazhatjuk, hogy pontosan olvashassuk a dátumot.

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 

A fentiekben egy extra változót deklaráltam az eredmény tárolására. Ehhez a változóhoz alkalmaztam a CDATE konverziós függvényt.

Ezután a FORMAT funkciót alkalmaztam a „NN-HH-ÉÉÉÉ” formátum alkalmazásához, és az eredmény az alábbiak szerint alakul.

Ezzel világosan olvashatjuk a nap- és a havi részt. Ez függ az excel rendszer dátumformátumától is, mivel a rendszer dátumformátumom „HH-NN-ÉÉÉÉ” volt, ez így mutatott, de ez nem akadályozhatja a formázást.

3. példa

Most meglátjuk, hogy a dátumokat hogyan formázzák szöveges értékekként a munkalap celláiban. Az alábbiakban a munkalapon szövegként tárolt dátumok képe látható.

Az A oszlopban A2-től A12-ig vannak dátumra néző értékek, de amikor megnézzük a formátum fület, akkor a „Szöveg” formátum jelenik meg. Most át kell alakítanunk ezeket az értékeket szövegből dátumra.

Az alábbiakban látható a kód, amelyet a szöveges formátumú dátumértékek tényleges dátumokká alakításához írtam.

Kód:

 Sub String_To_Date2 () Dim k as long 'Az adatok több cellában vannak, ezért minden cellát át kell hurcolnunk' Open for Loop For k = 2-12 'Adatok a 2. sorból indulnak és a 12. sorban végződnek, tehát 2-12 Cellák (k, 2). Érték = CDate (cellák (k, 1). Érték) Következő k End Sub 

Ha futtatja a kódot, akkor az alábbi eredményt kapja.

Dolgok, amikre emlékezni kell

  • A CDATE egy adattípus-átalakító függvény, de felhasználható a VBA karakterláncban tárolt dátum tényleges dátumértékekké konvertálására.
  • A CDATE függvény formátumának eredménye csak a rendszer dátum formátumától függ.
  • A dátumokat sorszámként tárolják az Excel programban, ezért formátumra van szükség, hogy dátumként jelenjenek meg.