VBA'da tarihlerin karşılaştırması

VBA'da tarihlerin karşılaştırılması.

Tipinin belirlenmesi

Halihazırda bulunuyorsa, karşılaştırmaları yapmak için tarihleri ​​"Tarih" veri türüne dönüştürmek gerekli değildir. Bir değişken birkaç yöntem kullanarak "Tarih" olup olmadığını öğrenebilirsiniz. VBA prosedürünün başlangıcındaki bildirimleri gözden geçirin. Bu bölüm "Dim" anahtar sözcüğünü kullanarak tüm değişkenleri beyan ettiğiniz kısımdır. Tarih değişkenleriniz aşağıdaki gibi talimatlarla bildirilecektir: "Tarih olarak Dim d1". Değişkeninizin "Tarih" türünde olup olmadığını bilmenin başka bir yolu, bu değişkene yapılan ödevleri incelemektir. Bu ödevler, "Tarih" türünü ifade eden "#" karakterini kullanır. Örneğin, aşağıdaki komut, "Tarih" olan "D1" değişkenine "12/1/2001" tarihini atar.

D1 = # 12/1/2001 #

"Tarih" veri türüne nasıl dönüştürülür

VBA'daki tarihleri ​​karşılaştırmak için önce VBA'da farklı değerlerden biri olan "Tarih" de saklanan iki tarihiniz olmalıdır. "Tarih" türü, tüm veri türünün özel bir örneğidir. Bu nedenle, tarihlerin karşılaştırılması, tamsayıların karşılaştırılmasıyla esasen aynıdır. Tarihleriniz henüz "Tarih" de değilse, bunları dönüştürmeniz gerekir. CDate işlevini kullanarak bunu yapabilirsiniz. Örneğin, "12/1/2001" dizesini "Tarih" türüne dönüştürmek için aşağıdaki komutu uygulayın:

D1 = CDat ("12/1/2001")

Karşılaştırma

"Date" değişkenindeki tarihin diğerinden önce olup olmadığını kontrol etmek isterseniz, aşağıdaki örnekte gösterildiği gibi 'less than' sembolünü kullanın:

Eğer (d1 <d2)

Bir tarihin diğerinden sonra gerçekleşip gerçekleşmediğini kontrol etmek için 'büyük harf' sembolünü kullanın ve her iki değişkenin de değerlerinin aynı tarih olup olmadığını öğrenmek için 'eşit' sembolünü kullanın.

Örnek program

Tarihleri ​​dönüştüren ve karşılaştıran bir örnek program yazın, böylece bu işlemi gerçekleştirmek için daha karmaşık VBA programları yazarken bu koda başvurabilirsiniz. "Geliştirici" sekmesindeki "Visual Basic" düğmesini tıklatarak, Office uygulamalarından herhangi birinde programlama ortamını açın. Daha sonra aşağıdaki programı ortamın orta penceresine yapıştırın. Dizeleri tarihlere dönüştürmek için "CDate" işlevini kullanır ve ikisi arasında üç farklı karşılaştırma yapar. "F5" e basarak programı çalıştırın ve "Acil" penceresini kontrol ederek çıkışı izleyin.

Genel Sub CompareDates () Dim d1, d2 Date d1 = CDate ("12/1/2001") d2 = CDate ("12/1/2002") (d1 d2) Sonra Debug.Print "Tarih 1'den sonra 2. tarih If (d1 = d2) Sonra Debug.Print "Tarih 1, tarih 2 ile aynıdır." Son Sub