VBA-tekenreeks tot nu toe

Excel VBA-tekenreeks tot nu toe

In Vba is er een methode waarmee we een bepaalde string naar een datum kunnen converteren, en de methode staat bekend als CDATE-functie in vba, dit is een ingebouwde functie in VBA en de onderdelen die nodig zijn voor deze functie zijn om de string eerst naar een getal en dan converteren we het gegeven getal naar een datum. Het resultaatformaat is alleen afhankelijk van de systeemdatumopmaak.

Een van de meest voorkomende problemen waarmee we allemaal te maken hebben met Excel is "Datum en tijd". Deze worden vaak opgeslagen als tekstwaarden en blijven in eerste instantie onopgemerkt. Maar als ze die tijd moeten gebruiken, zullen we te weten komen dat die waarden als tekst zijn opgeslagen en helemaal niet weten hoe we ermee moeten omgaan. "Datum en tijd" zijn twee gecombineerde dingen in één element, maar als die waarden eenmaal zijn opgeslagen als tekstwaarden, is het lastig om mee te werken.

Hoe tekenreekswaarden naar datum te converteren?

U kunt deze VBA String to Date Excel-sjabloon hier downloaden - VBA String to Date Excel-sjabloon

Voorbeeld 1

Zodra de VBA-variabele is gedeclareerd en toegewezen als String, wordt alles dat aan die variabele is toegewezen, alleen als string behandeld. Kijk voor een voorbeeld naar de onderstaande code.

Code:

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

In de bovenstaande codevariabele is "k" gedefinieerd als "String" -datatype en voor deze variabele hebben we de waarde toegewezen als "10-21".

Oké, laten we de code uitvoeren en kijken wat we in het berichtvenster in VBA krijgen.

We hebben alleen de waarde 10-21, maar meestal zijn deze waarden een datum, geen tekenreekswaarden. Dus hoewel het toegewezen gegevenstype "String" is, kunnen we nog steeds naar de datum converteren met behulp van de datatype-conversiefunctie CDATE VBA.

Code:

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

In het bovenstaande hebben we, voordat we het resultaat van de variabele “k” in het berichtvenster laten zien, de CDATE-functie toegewezen. Er wordt een kleine aanpassing gemaakt, laten we eens kijken hoe groot de impact is.

Nu zouden we het resultaat zien als "Datum" en niet langer als "String" -waarde.

Voorbeeld # 2

Bekijk nu de onderstaande code voor een voorbeeld.

Code:

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

Op dit moment zou de bovenstaande code het resultaat weergeven als "43599", zoals we hierboven hebben toegewezen.

Maar zodra we de CDATE-functie gebruiken, wordt deze geconverteerd naar de datumwaarde.

Code:

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

Het resultaat na het toepassen van de CDATE-functie is als volgt.

Omdat Excel de datum heeft opgeslagen als serienummers, is ons toegewezen serienummer 43599 gelijk aan de datum 14/05/2019 wanneer het datumnotatie wordt toegepast.

We kunnen het formaat ook toepassen op de datum als "DD-MMM-JJJJ" om de datum nauwkeurig te lezen.

Code:

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

In het bovenstaande heb ik een extra variabele gedeclareerd om het resultaat op te slaan. Voor deze variabele heb ik de CDATE-conversiefunctie toegepast.

Vervolgens heb ik de FORMAT-functie gebruikt om het formaat van het "DD-MMM-JJJJ" -formaat toe te passen en het resultaat zal zijn zoals hieronder getoond.

Hiermee kunnen we het dagdeel en maanddeel duidelijk aflezen. Het hangt ook af van de datumnotatie van uw systeem in Excel, aangezien het datumnotatie van mijn systeem "MM-DD-JJJJ" was, werd het zo weergegeven, maar dat zou geen belemmering moeten zijn om te formatteren.

Voorbeeld # 3

Nu zullen we zien hoe datums worden opgemaakt als tekstwaarden in werkbladcellen. Hieronder ziet u de afbeelding van de datums die zijn opgeslagen als tekst in een werkblad.

In kolom A van A2 tot A12 hebben we waarden die op datum lijken, maar als we naar het tabblad Opmaak kijken, wordt het "Tekst" -formaat weergegeven. Nu moeten we deze waarden van tekst naar datum converteren.

Hieronder staat de code die ik heb geschreven om de tekstopgemaakte datumwaarden om te zetten in werkelijke datums.

Code:

 Sub String_To_Date2 () Dim k As Long 'Gegevens bevinden zich in meer dan één cel, dus u moet elke cel doorlopen' Open voor lus voor k = 2 tot 12 'Gegevens beginnen vanaf de 2e rij en eindigen op de 12e rij, dus 2 tot 12 Cellen (k, 2) .Value = CDate (Cellen (k, 1) .Value) Volgende k End Sub 

Als u de code uitvoert, krijgt u het onderstaande resultaat.

Dingen om te onthouden

  • CDATE is een datatype-conversiefunctie, maar kan worden gebruikt om VBA-tekenreeks opgeslagen datum om te zetten naar werkelijke datumwaarden.
  • Het resultaat van de CDATE-functie-indeling is alleen afhankelijk van de systeemdatum-indeling.
  • Datums worden in Excel opgeslagen als serienummers, dus opmaak is vereist om ze als datums weer te geven.