Bugüne Kadarki VBA Dizesi | Excel VBA'da Dize Değerlerini Tarihe Dönüştür

Bugüne Kadarki Excel VBA Dizesi

Vba'da belirli bir dizeyi tarihe dönüştürebileceğimiz bir yöntem vardır ve yöntem vba'da CDATE işlevi olarak bilinir, bu VBA'da yerleşik bir işlevdir ve bu işlev için gerekli olan parçalar önce dizeyi dizgeye dönüştürmektir. bir sayı ve sonra verilen sayıyı bir tarihe dönüştürüyoruz. Sonuç biçimi yalnızca sistem tarih biçimine bağlıdır.

Excel ile hepimizin karşılaştığı yaygın sorunlardan biri "Tarih ve Saat" dir ve genellikle metin değerleri olarak saklanır ve başlangıçta fark edilmez. Ancak bu zamanı kullanmaları gerektiğinde, bu değerlerin metin olarak saklandığını ve bunlarla nasıl başa çıkacağımızı bilmediğimizi öğreneceğiz. "Tarih ve Saat" tek bir öğede birleştirilmiş iki şeydir, ancak bu değerler metin değerleri olarak depolandıktan sonra çalışmak zordur.

Dize Değerleri Tarihe Nasıl Dönüştürülür?

Bu VBA Dizesini Tarihe Kadar Excel Şablonunu buradan indirebilirsiniz - Tarihe Kadar VBA Dizesi Excel Şablonu

Örnek 1

VBA değişkeni Dize olarak bildirilip atandıktan sonra, bu değişkene atanan her şey yalnızca dize olarak değerlendirilecektir. Bir örnek için aşağıdaki koda bakın.

Kod:

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

Yukarıdaki kod değişkeninde "k" veri tipi olarak tanımlanmış ve bu değişken için değeri "10-21" olarak verdik.

Tamam, kodu çalıştıralım ve VBA'da mesaj kutusuna ne aldığımızı görelim.

Değeri yalnızca 10-21 olarak aldık, ancak genellikle bu değerler bir tarih, dize değerleri değil. Dolayısıyla, atanan veri türü "Dize" olsa bile, CDATE VBA veri türü dönüştürme işlevini kullanarak hala tarihe dönüştürebiliriz.

Kod:

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

Yukarıda mesaj kutusunda “k” değişkeninin sonucunu göstermeden önce CDATE fonksiyonunu atadık. Küçük bir ayarlama yapıldı, ne kadar büyük bir etki yarattığını görelim.

Artık sonucu "Tarih" olarak göreceğiz, artık "Dize" değeri olarak değil.

Örnek 2

Şimdi, bir örnek için aşağıdaki koda bakın.

Kod:

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

Bu noktada yukarıdaki kod, sonucu yukarıda verdiğimiz gibi "43599" olarak gösterecektir.

Ancak CDATE işlevini bir kez kullandığımızda, tarih değerine dönüşecektir.

Kod:

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

CDATE işlevini uyguladıktan sonraki sonuç aşağıdaki gibidir.

Excel, tarihi seri numaraları olarak sakladığından, atanmış seri numaramız 43599, tarih formatının uygulandığı 05/14/2019 tarihine eşittir.

Tarihi doğru okumak için formatı tarihe "GG-AA-YYYY" olarak da uygulayabiliriz.

Kod:

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

Yukarıda, sonucu saklamak için fazladan bir değişken tanımladım. Bu değişken için CDATE dönüştürme işlevini uyguladım.

Daha sonra, “GG-AA-YYYY” formatının formatını uygulamak için FORMAT işlevini kullandım ve sonuç aşağıda gösterildiği gibi olacak.

Bununla gün bölümünü ve ay bölümünü net bir şekilde okuyabiliriz. Ayrıca, sistem tarih formatım "AA-GG-YYYY" olduğundan, bu şekilde görünüyordu, ancak bu, biçimlendirmeye engel olmamalı.

Örnek 3

Şimdi tarihlerin çalışma sayfası hücrelerinde metin değerleri olarak nasıl biçimlendirildiğini göreceğiz. Aşağıda, bir çalışma sayfasında metin olarak depolanan tarihlerin görüntüsü bulunmaktadır.

A2'den A12'ye A sütununda tarihe bakan değerlerimiz var, ancak format sekmesine baktığımızda "Metin" formatını gösteriyor. Şimdi bu değerleri metinden bugüne dönüştürmemiz gerekiyor.

Metin formatlı tarih değerlerini gerçek tarihlere dönüştürmek için yazdığım kod aşağıdadır.

Kod:

 Sub String_To_Date2 () Dim k As Long 'Veriler birden fazla hücrede olduğundan, her bir hücrede döngü olması gerekir' Döngü İçin Aç k = 2 ila 12 'Veri 2. satırdan başlar ve 12. satırda sona erer, yani 2 ila 12 Hücreler (k, 2) .Değer = CDate (Hücreler (k, 1) .Değer) Sonraki k End Sub 

Kodu çalıştırırsanız bize aşağıdaki sonucu verecektir.

Hatırlanacak şeyler

  • CDATE, bir veri türü dönüştürme işlevidir, ancak VBA dizesinin saklandığı tarihi gerçek tarih değerlerine dönüştürmek için kullanılabilir.
  • CDATE işlev biçiminin sonucu yalnızca sistem tarih biçimine bağlıdır.
  • Tarihler, excel'de seri numaraları olarak saklanır, bu nedenle tarih olarak göstermek için biçimlendirme gerekir.