EXCEL VBA CDATE FONKSİYONU

EXCEL VBA'DA CDATE FONKSİYONU NEDİR?

VBA CDATE işlevi, ifadeleri “Tarih” veri türlerine dönüştürmek için bir araçtır. “Tarihe Dönüştür” anlamına gelir. Bu işlev dizeleri, sayısal değerleri ve nesneleri geçerli tarih gösterimlerine dönüştürür.

CDATE, VBA'da tarihlerle çalışırken özellikle yararlıdır, çünkü farklı veri tiplerinin standart bir tarih biçimine dönüştürülmesini kolaylaştırır.

VBA CDATE İşlevi

Yukarıdaki örnekte sayısal bir tarihi “gg-aa-yyyy” biçimine dönüştürmek için VBA CDATE Fonksiyonunu kullandık.

Not: Sayısal tarih, belirli uygulamalarda tarihleri ​​temsil etmek için kullanılan, genellikle seri numarası olan sayısal bir değer olarak tarih gösterimidir. Excel'de, sayısal tarihler 1 Ocak 1900'den (Windows sistemleri için) veya 1 Ocak 1904'ten (Mac sistemleri için) bu yana geçen gün sayısına dayanır. Sayısal tarihler genellikle hesaplamalar veya tarih manipülasyonu için kullanılır ve matematiksel işlemlerin ve karşılaştırmaların kolayca gerçekleştirilmesine olanak tanır.

ÖNEMLİ NOTLAR

  • VBA CDATE Fonksiyonu bir ifadeyi Tarih veri türüne dönüştürür.
  • VBA CDATE Fonksiyonunun sözdizimi “CDATE(ifade)” şeklindedir.
  • VBA CDATE Fonksiyonu dizeleri, sayısal değerleri ve nesneleri geçerli tarih gösterimlerine dönüştürebilir.
  • Excel'de VBA CDATE Fonksiyonunu kullanmak için , Visual Basic Düzenleyicisi'ni açın, fonksiyonu kullanarak kodu yazın ve dönüştürülen değeri bir değişkene atayın.

CDATE'nin sözdizimi

VBA'da VBA CDATE fonksiyonunun sözdizimi basittir.

“CDATE(ifade)”

"İfade" parametresi, bir Tarih veri türüne dönüştürmek istediğiniz değeri temsil eder. Bir dize, sayısal bir değer veya tarih olarak yorumlanan bir nesne olabilir. VBA CDATE İşlevi bu ifadeyi alır ve onu geçerli bir tarih gösterimine dönüştürmeye çalışır.

Excel VBA'da CDATE Fonksiyonu Nasıl Kullanılır?

Excel'de VBA CDATE İşlevini kullanmak için şu adımları izleyin:

  1. Visual Basic Düzenleyicisini açın:

    Excel'de Visual Basic for Applications (VBA) düzenleyicisini açmak için “Alt + F11” tuşlarına basın.

  2. Yeni bir modül ekle:

    VBA editöründe, üst menüdeki “Ekle”ye tıklayın ve yeni bir kod modülü eklemek için “Modül”ü seçin.

  3. Aşağıdaki kodu (Sub ConvertToDate.) kopyalayın ve VBA editöründe yeni oluşturulan modüle yapıştırın.


    Sub ConvertToDate()
    Dim dateString As String
    Dim convertedDate As Date
    ' Değişkene bir tarih dizesi atayın
    dateString = “12/31/2023”
    ' Dizeyi CDate kullanarak bir tarihe dönüştürün
    convertedDate = CDate(dateString)
    ' Dönüştürülen tarihi bir ileti kutusunda görüntüleyin
    MsgBox convertedDate
    End Sub


    Excel VBA'da CDATE Fonksiyonu Nasıl Kullanılır - Adım 3

  4. Tarih dizesini değiştirin:

    Varsayılan olarak, kod “12/31/2023” tarih dizesini kullanır. Farklı bir tarihi dönüştürmek istiyorsanız, “dateString” değişkenine atanan değeri değiştirin. Tarih dizesinin tanınabilir bir biçimi (örneğin, “mm/dd/yyyy”) izlediğinden emin olun.

  5. Kodu çalıştırın:

    VBA düzenleyicisini kapatın ve Excel çalışma kitabına dönün. Makro iletişim kutusunu açmak için “Alt + F8” tuşlarına basın. Listeden “ConvertToDate” makrosunu seçin ve kodu yürütmek için “Çalıştır”a tıklayın.

    Excel VBA'da CDATE Fonksiyonu Nasıl Kullanılır - Adım 5

  6. Sonucu görüntüle:

    Kodu çalıştırdıktan sonra, dönüştürülen tarihi gösteren bir mesaj kutusu görünecektir. Bu örnekte, mesaj kutusu düzeltilmiş tarih olarak “12/31/2023”ü gösterecektir.

    Excel VBA'da CDATE Fonksiyonu Nasıl Kullanılır - Adım 6

Aşağıda Excel VBA'da CDATE fonksiyonunun etkili bir şekilde kullanılmasına ilişkin adım adım bir kılavuz bulunmaktadır.

  1. Sözdizimi: VBA CDATE İşlevi, “CDATE(ifade)” sözdizimine sahiptir. İfade, tarihe dönüştürülecek değerdir. İşlevi kullanmadan önce sözdizimini anladığınızdan emin olun.
  1. Dönüştürülen Tarihi Ata: Bir Tarih değişkeni bildirin ve CDATE işlevini kullanarak dönüştürülen tarihi atayın. Örneğin, “myDate = CDATE(“2023-06-08″).” Dönüştürülen tarihi “myDate” değişkenine atar.
  1. Geçersiz Tarihleri ​​İşle: Giriş geçerli bir tarih olarak yorumlanamıyorsa CDATE işlevi bir hata oluşturabilir. Hata işleme tekniklerini kullanın veya CDATE kullanmadan önce IsDate işlevini kullanarak girişi doğrulayın.
  1. Sonucu Biçimlendir: Biçim işlevini kullanarak tarih biçimini özelleştirin. “gg-aa-yyyy” veya “aa/gg/yyyy” gibi istediğiniz biçimi belirtin. İstediğiniz biçimlendirmeyi elde etmek için Biçim işlevini dönüştürülen tarihe uygulayın.
  1. Dönüştürülen Tarihi Kullanın: Değer dönüştürülüp biçimlendirildikten sonra, dönüştürülen tarihi VBA kodunuzda kullanabilirsiniz. Hesaplamalar ve karşılaştırmalar yapın veya dönüştürülen tarihle yerleşik VBA işlevlerini ve operatörlerini kullanın.

Örnekler

VBA CDATE'in nasıl kullanılacağını anlamak için aşağıda gösterildiği gibi bazı ilginç örneklere bakalım.

Örnek 1

Bu örnekte, belirtilen bir tarihi ("15/09/1995") "gg ay yyyy" biçiminde bir dize gösterimine dönüştüren ve bunu bir ileti kutusunda görüntüleyen VBA CDATE Fonksiyonunu kullanacağız.

  • Adım 1: Visual Basic Düzenleyicisini (VBE) açın

VBE'yi açmak için Excel'de Alt + F11 tuşlarına basın veya Excel şeridindeki Geliştirici sekmesine tıklayın ve ardından Visual Basic düğmesine tıklayın.

VBA CDATE İşlevi - Örnek 1 - Adım 1
  • Adım 2: “Ekle” menüsüne tıklayıp “Modül”ü seçerek yeni bir modül oluşturun. Şimdi yeni bir Altyordam oluşturun. DisplayDateInWords adlı bir altyordam bildirerek başlıyoruz. Altyordamlar belirli görevleri gerçekleştiren kod bloklarıdır.
Örnek 1 - Adım 2
  • Adım 3: Değişken Bildirimleri

İki değişken tanımlıyoruz: Girilen tarihi saklamak için Date türünden inputDate ve biçimlendirilmiş tarihi kelimelerle saklamak için String türünden dateString.

Örnek 1 - Adım 3
  • Adım 4: Giriş Tarihini Ayarlayın.

inputDate değerini belirli bir tarihe ayarlıyoruz. Bu satırı, tarih girişini kullanıcıdan veya Excel'deki bir hücreden dinamik olarak almak için değiştirebilirsiniz.

Örnek 1 - Adım 4
  • Adım 5: Tarihi Word Formatında Dizeye Dönüştür

GirişTarihini istenen biçime sahip bir dize gösterimine dönüştürmek için Biçim işlevini kullanırız. Bu durumda, "gg mmmm yyyy" biçim deseni, tarihin gün, tam ay adı ve dört basamaklı yıl ile görüntülenmesi gerektiğini belirtir.

Örnek 1 - Adım 5
  • Adım 6: Tarihi Mesaj Kutusunda Göster.

MsgBox fonksiyonunu kullanarak bir mesaj kutusunda dateString'i görüntüleriz. Mesaj kutusu biçimlendirilmiş tarihi kelimelerle gösterecektir, örneğin "15 Eylül 1995".

Örnek 1 - Adım 6
  • Adım 7: Şimdi kodu kaydedin ve VBE'yi kapatın ve Alt + F8 tuşlarına basın ve “DisplayDateInWords” VBA kodunu çalıştırabilirsiniz.
VBA CDATE İşlevi - Örnek 1 - Adım 7
  • Adım 8: Kodu çalıştırdığınızda tarihin word formatında görüntülendiği bir mesaj kutusu göreceksiniz.
VBA CDATE İşlevi - Örnek 1 - Adım 8

İşte tam kod:

Sub DisplayDateInWords()
Dim inputDate As Date
Dim dateString As String
' Giriş tarihini ayarla
inputDate = DateValue(“15/09/1995”)
' Tarihi kelime biçiminde bir dizeye dönüştür
dateString = Format(inputDate, “dd mmmm yyyy”)
' Tarihi bir mesaj kutusunda görüntüle
MsgBox dateString
End Sub

Örnek 2

Kod örneği, bir tarih dizesini girdi olarak alıp onu uzun bir tarih biçimine dönüştüren ve tarihin "Hafta içi, Ay Gün, Yıl" biçiminde biçimlendirilmiş bir gösterimini sağlayan ConvertDateToLongFormat adlı bir VBA işlevini sergiliyor.

  • Adım 1: Yeni modülde bir Fonksiyon tanımlayarak başlayın.

Kod, “ConvertDateToLongFormat” adlı bir fonksiyonu bildirerek başlıyor. Bu fonksiyon, tarihi belirli bir biçimde temsil eden String türünde tek bir parametre olan “dateString”i alıyor.

VBA CDATE İşlevi - Örnek 2 - Adım 1
  • Adım 2: Değişken Beyanı

“convertedDate” adlı bir değişken Date türünden tanımlanmıştır. Bu değişken dönüştürülmüş tarih değerini depolayacaktır.

Örnek 2 - Adım 2
  • Adım 3: “ DateValue ” fonksiyonu “dateString”i bir Date veri türüne dönüştürür. Dizeyi yorumlar ve geçerli bir tarih değerine dönüştürür. Dönüştürülen tarih daha sonra “convertedDate” değişkenine atanır.
Örnek 2 - Adım 3
  • Adım 4: Tarih ve Son İşlevini Biçimlendirin

Format fonksiyonu, “convertedDate” değerini istenilen uzun tarih formatına biçimlendirmek için kullanılır.

Bu örnekte biçim, tarihi "Hafta içi, Ay Gün, Yıl" olarak görüntüleyen "gggg, aaaa g, yyyy"dir. Biçimlendirilmiş tarih daha sonra işlevin dönüş değeri olarak atanır.

Örnek 2 - Adım 4

“ConvertDateToLongFormat” fonksiyonu, bir tarihi temsil eden bir dizeyi alır, “DateValue” fonksiyonunu kullanarak bunu geçerli bir Tarih değerine dönüştürür, Format fonksiyonunu kullanarak tarihi biçimlendirir ve biçimlendirilmiş uzun tarihi bir dize olarak döndürür.

  • Adım 5: Modülü kaydedin ve VBE'den çıkın.
  • Adım 6: Excel çalışma sayfasında bir tarihi uzun tarih biçimine dönüştürmek için “ConvertDateToLongFormat” fonksiyonunu kullanabilirsiniz.

Herhangi bir hücreye “=ConvertDateToLongFormat(Cell)” formülünü girin ve “Cell” ifadesini kısa tarihi içeren hücre referansıyla değiştirin.

Örnek 2 - Adım 6a

Örneğin, kısa tarih A2 hücresinde bulunuyorsa formül “ =ConvertDateToLongFormat(A2) ” olacaktır.

VBA CDATE Fonksiyonu - Örnek 2 - Adım 6b
  • Adım 7: Formülü girip enter'a bastığınızda B2 Hücresinin uzun tarihi gösterdiğini göreceksiniz.
VBA CDATE İşlevi - Örnek 2 - Adım 7

İşte tam kod:

Function ConvertDateToLongFormat(dateString As String) As String
Dim convertedDate As Date
convertedDate = DateValue(dateString)
ConvertDateToLongFormat = Format(convertedDate, “dddd, mmmm d, yyyy”)
End Function

Örnek 3

Bu örnekte, önceki örnekte bahsedilen “ConvertDateToLongFormat” fonksiyonunu kullanacağız ve bir Excel çalışma sayfasının A sütunundaki tüm tarihleri ​​dönüştüren bir alt rutin oluşturacağız.

Excel VBA CDATE Fonksiyonu - Örnek 3

Dönüştürülen uzun tarihler B sütununda gösterilecektir.

Fonksiyon bildirimini sonlandırdığımızda, aynı modülde devam ederek “ConvertDatesInColumn” alt yordamını oluşturacağız:

  • Adım 1: Yeni modülde “ConvertDatesInColumn” adında bir alt rutin tanımlıyoruz.
Örnek 3 - Adım 1

Adım 2: Son satır numarasını, giriş aralığını, geçerli giriş hücresini ve dönüştürülen tarih dizesini depolamak için değişkenler bildiriyoruz.

Örnek 3 - Adım 2
  • Adım 3: Şimdi giriş aralığını ayarlıyoruz.

VBA Cells ve End fonksiyonlarını kullanarak , A sütunundaki verinin bulunduğu son satırı belirliyoruz. Daha sonra “inputRange” değerini A1 hücrelerini, A sütunundaki boş olmayan son satıra kadar kapsayacak şekilde ayarlıyoruz.

Örnek 3 - Adım 3
  • Adım 4: Giriş Aralığındaki Her Hücreyi Döngüye Alın

“inputRange” içindeki her bir hücreyi yinelemek için bir döngü başlatıyoruz.

Örnek 3 - Adım 4
  • Adım 5: Hücrenin Geçerli Bir Tarih İçerip İçermediğini Kontrol Edin.

Mevcut giriş hücresinin değerinin geçerli bir tarih olup olmadığını kontrol etmek için “IsDate” fonksiyonunu kullanırız. Eğer öyleyse, If bloğunun içindeki kod yürütülür.

Örnek 3 - Adım 5
  • Adım 6: Tarihi Uzun Biçime Dönüştürün.

“ConvertDateToLongFormat” fonksiyonunu çağırıyoruz, geçerli giriş hücresinin değerini tarih dizesi girişi olarak geçiriyoruz. Fonksiyon, “convertedDate” değişkenine atanan biçimlendirilmiş tarih dizesini döndürüyor.

Örnek 3 - Adım 6
  • Adım 7: Dönüştürülen Uzun Tarihi B Sütunundaki Bitişik Hücreye yazın ve “inputRange” içindeki bir sonraki hücreye geçin ve tüm hücreler işlenene kadar döngüyü tekrarlayın.

Aynı satırdaki ancak bir sonraki sütundaki (B sütunu) bitişik hücreye başvurmak için Offset özelliğini kullanırız . Value özelliği daha sonra bu hücreye “convertedDate” değerini atar.

Örnek 3 - Adım 7
  • Adım 8: Modülü kaydedin ve VBE'yi kapatın. Şimdi Alt + F8 tuşlarına basın ve “ConvertDatesInColumn” alt rutinini çalıştırın.
Excel VBA CDATE Fonksiyonu - Örnek 3 - Adım 8
  • Adım 9: Kodu çalıştırdığınızda, çalışma sayfasının A sütunundaki tarihleri ​​işler. Geçerli bir tarih içerip içermediğini belirlemek için A sütunundaki her hücreyi kontrol eder.

Geçerli bir tarih bulunursa, tarihi uzun biçim dizesine dönüştürmek için “ConvertDateToLongFormat” işlevini çağırır. Dönüştürülen uzun tarih daha sonra B sütunundaki bitişik hücreye yazılır.

Excel VBA CDATE Fonksiyonu - Örnek 3 - Adım 9

KODUN TAMAMI

Sub ConvertDatesInColumn()
Dim lastRow As Long
Dim inputRange As Range
Dim inputCell As Range
Dim convertedDate As String
‘ Set the input range to column A
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Set inputRange = Range(“A1:A” & lastRow)
‘ Loop through each cell in the input range
For Each inputCell In inputRange
‘ Check if the cell contains a valid date
If IsDate(inputCell.Value) Then
‘ Convert the date to long format
convertedDate = ConvertDateToLongFormat(inputCell.Value)
‘ Write the converted long date to the adjacent cell in column B
inputCell.Offset(0, 1).Value = convertedDate
End If
Next inputCell

End Sub

Not: “ ConvertDateToLongFormat ” Fonksiyonu ve “ ConvertDatesInColumn()” alt yordamının aynı Modüle girildiğinden emin olun .

Dikkat Edilmesi Gereken Önemli Noktalar

  • Tarih Biçimi: Hataları veya beklenmeyen davranışları önlemek için dönüştürülen ifadenin sistem tarafından tanınan geçerli bir tarih biçiminde olduğundan emin olun.
  • Dönüştürme Hassasiyeti: İfadeleri dönüştürürken hassasiyet sınırlamalarının farkında olun. Dönüştürme sorunlarından kaçınmak için iyi tanımlanmış tarih biçimleri kullanın.
  • Tarih Aralığı Sınırlamaları: CDate işlevi, işleyebileceği tarih aralığıyla ilgili sınırlamalara sahiptir. Genellikle yılları kapsayan desteklenen aralığın dışındaki tarihleri ​​doğru bir şekilde dönüştüremeyebilir veya işleyemez.

. VBA CDATE Fonksiyonu neden çalışmıyor?

VBA CDATE İşlevi geçersiz tarih biçimleri veya tarih olarak yorumlanamayan ifadeler nedeniyle çalışmayabilir. Giriş ifadesinin bölgesel ayarlara göre beklenen biçime uyduğundan ve ifadenin geçerli bir tarihi temsil ettiğinden emin olun.

2. VBA'da DateValue ve CDate arasındaki fark nedir?

“DateValue” özellikle dizeleri tarihlere dönüştürürken, “CDate” dizeleri, sayıları ve nesneleri işleyebilir.

“DateValue” tanınan bir tarih biçimi gerektirirken, “CDate” ifadeyi bölgesel ayarlara göre yorumlamaya çalışır.

3. VBA’da Datediff ve CDate arasındaki fark nedir?

“DateDiff” iki tarih veya saat arasındaki tarih ve saat farklarını hesaplar ve sayısal bir değer döndürür.

“CDate” ifadeleri Tarih veri türlerine dönüştürür. “DateDiff” hesaplamalar için kullanılırken, “CDate” dönüştürme için kullanılır.

Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...