Perbandingan Tanggal di VBA

halaman kalender

VBA menyimpan tanggal sebagai jumlah hari sejak 30 Desember 1899.

Kredit Gambar: Sergii Gnatiuk/iStock/Getty Images

Membandingkan tanggal di Microsoft Visual Basic for Applications tidak berbeda dengan membandingkan tipe data lainnya. Nilai yang Anda bandingkan harus bertipe "Tanggal". Anda dapat menggunakan operator perbandingan standar: "" untuk "lebih besar dari"; ">=" untuk "lebih besar dari atau sama dengan"; "=" untuk "sama dengan"; dan "<>" untuk "tidak sama dengan." Anda juga dapat menggunakan dua operator perbandingan, "Is" dan "IsNot."

Jenis Tanggal VBA

Sangat membantu untuk mengingat bagaimana VBA menyimpan nilai tanggal dalam memori saat Anda membandingkan tanggal. Tanggal disimpan sebagai angka floating point presisi ganda, atau Double. Bagian bilangan bulat panjang adalah jumlah hari, positif atau negatif, sejak 30 Desember 1899. Bagian desimal adalah jumlah waktu yang telah berlalu sejak tengah malam. Tanggal tanpa waktu memiliki bagian desimal yang disetel ke nol. Misalnya, 1 Mei 1967 disimpan sebagai 24593.0. Ini berarti bahwa ketika VBA membandingkan dua tanggal, sebenarnya membandingkan dua angka yang mewakili hari.

Video Hari Ini

String Karakter Vs. Tanggal

Saat Anda membandingkan tanggal di VBA, Anda harus memastikan bahwa nilai yang Anda bandingkan memiliki tipe "Tanggal" dan bukan string karakter. Misalnya, string karakter "05/01/1999" lebih kecil dari string karakter "31/12/1900" karena "05" datang sebelum "12." Mengonversi string karakter menjadi tipe tanggal menggunakan fungsi "CDate", misalnya, "CDate (Kotak teks. Nilai)".

Fungsi Bermanfaat

Selain CDate(), ada fungsi bermanfaat lainnya yang mungkin Anda gunakan saat membandingkan tanggal. Fungsi "Date()" menyediakan tanggal hari ini sebagai nilai Date. Fungsi "Sekarang ()" menyediakan tanggal dan waktu hari ini sebagai nilai Tanggal. Karena tipe data Tanggal juga menyertakan komponen waktu, Anda hanya dapat mengekstrak bagian tanggal dari suatu variabel saat membandingkan tanggal dengan menggunakan fungsi "DateValue()", misalnya, "Jika penyerahan > DateValue (batas waktu) Kemudian ..."

Aritmatika Tanggal

Karena tanggal disimpan sebagai jumlah hari sejak 30 Desember 1899, Anda dapat menyertakan aritmatika tanggal saat membandingkan tanggal di VBA. Misalnya, jika tiket kedaluwarsa tiga hari setelah dibeli, Anda dapat memeriksa tiket kedaluwarsa dengan kode VBA yang mirip dengan berikut ini:

Fungsi Publik kedaluwarsa (pembelian sebagai Tanggal) Sebagai Boolean kedaluwarsa = Salah Jika pembelian+3 > Tanggal() Kemudian kedaluwarsa = Benar Berakhir Jika Fungsi Akhir