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 bir 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 dizgiye 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ığında, çalışmak çok zordur.

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

Ö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. Örneğ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 kodda "k" değişkeni "String" 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'daki 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 da, 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 ayar yapıldı, bakalım ne kadar büyük bir etki yaratacak.

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

Ö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 atadığımız gibi "43599" olarak gösterecektir.

Ancak CDATE işlevini 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" biçiminin biçimini 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, excel'deki sistem tarih formatınıza da bağlıdır. Sistem tarih formatım "AA-GG-YYYY" olduğu için böyle görünüyordu, ancak bu format için bir 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 depolandığı 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.

Ilginç makaleler...