Bu kısa eğitim, VBA'da bir Dizenin Tarihe nasıl dönüştürüleceğini gösterecektir.
Excel'deki tarihler sayı olarak depolanır ve ardından tarih olarak gösterilecek şekilde biçimlendirilir. Excel dünyasında 1. Gün 1 Ocak 1900 (Windows varsayılanı) veya 1 Ocak 1904 (Macintosh varsayılanı) idi - bu, 5 Ağustos 2022'nin 1 Ocak 1900'den bu yana 44413. gün olduğu anlamına gelir. Excel'de bir dizeyi tarihe dönüştürmek için , önce dizeyi bir sayıya dönüştürmemiz ve ardından bu sayıyı tarihe dönüştürmemiz gerekiyor.
CDate İşlevi
Bir dizeyi tarihe dönüştürmek için VBA'da CDate adlı bir işlevi kullanabiliriz.
1234567 | Alt ConvertDate()Dim dte TekliDize Olarak Dim strDstrD = "05/10/2020"dte = CDate(strD)MsgBox dteAlt Bitiş |
Sayısal bir değişken (dte as Single) bildirdiğimiz için, mesaj kutusu girilen tarihi ifade eden sayıyı döndürecektir.
Yılı, yıl rakamlarının 4'ünü de kullanarak girmemiz önemlidir (yani 2022 ve sadece 20 değil), aksi takdirde döndürülen sayı beklendiği gibi olmayabilir. Excel, tarihin yıl kısmını yorumlamaz - bu, bilgisayarımızın Kontrol Paneli tarafından kontrol edilir.
Ancak, değişkenleri tarih değişkeni olarak bildirirsek, mesaj kutusu tarihe dönüştürülen sayıyı döndürür.
1234567 | Alt ConvertDate()Dim dte As TarihDize Olarak Dim strDstrD = "05/10/2020"dte = CDate(strD)MsgBox dteAlt Bitiş |
Bunu bir adım daha ileri götürebilir ve tarihi, görmek istediğimiz tarih biçimi türüne göre biçimlendirebiliriz.
1234567 | Alt ConvertDate()Dize Olarak Dim dteDize Olarak Dim strDstrD = "05/10/2020"dte = Biçim(CDate(strD), "gg mmmm yyyy")MsgBox dteAlt Bitiş |
Bu örnekte, dizeyi bir tarihe dönüştürüyoruz ve ardından tekrar bir dizeye dönüyoruz!
Yılı tamamen atlarsak, Excel cari yılı varsayar.