/ / Excel VBA'da Tarihler ve Zamanları Karşılaştır

Excel VBA'da Tarihler ve Zamanları Karşılaştır

Bu örnek nasıl yapılacağını öğretir tarihleri ​​ve saatleri karşılaştır içinde Excel VBA. Tarihler ve saatler Excel'de sayı olarak saklanır ve 0 Ocak 1900'den bu yana geçen günlerin sayısıdır. Gördüğünüz sayı biçimine bağlıdır.

1. A sütununa bazı rakamlar girin.

sayılar

2. Bu rakamlar tarihlerdir. Bu tarih formatı hakkında endişelenmeden bazı tarihleri ​​girmek için mükemmel bir yoldur. Biçimi Tarih olarak değiştirin (A sütununa sağ tıklayın, Hücreleri Biçimlendir ve Tarih'i seçin).

Sonuç:

Tarih

Not: Tarihler ABD Formatındadır. Aylar önce, İkinci Gün. Bu tür format, windows bölgesel ayarlarınıza bağlıdır.

Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin:

3. Tamsayı türünde i değişkenini bildirin.

Dim i As Integer

4. Bir Sonraki döngü için ekleyin.

For i = 1 To 5

Next i

5. Tarih fonksiyonu, geçerli tarihi zaman olmadan döndürür. Geçerli tarihi içeren tüm hücreleri (12/22/2013) vurgulamak için, döngü için aşağıdaki kod satırını ekleyin.

If Cells(i, 1).Value = Date Then Cells(i, 1).Font.Color = vbRed

Sonuç:

Tarihler Eşittir

6. 04/19/2011 tarihinden önceki tüm tarihleri ​​vurgulamak için döngüye aşağıdaki kod satırını ekleyin.

If Cells(i, 1).Value < DateValue("April 19, 2011") Then Cells(i, 1).Font.Color = vbRed

Sonuç:

Daha Erken Tarihler

7. Peki ya zaman hakkında, söylediğini duyuyoruz. Onlar ondalıktır. Genel biçime geri dönün ve sayıları ondalık sayılara değiştirin.

Ondalık sayılar

8. Şimdi formatı "Tarih ve Saat" formatına değiştirin.

Tarih ve Saat Formatı

Sonuç:

Tarihler ve Zamanlar

9. Geçerli tarihi içeren tüm hücreleri vurgulamak isterseniz, kod satırını artık 5'de kullanamayız. Neden olmasın? Çünkü A sütunundaki sayılar artık ondalık sayılardır. Tarih ile karşılaştırmak (tam sayı) herhangi bir eşleşme vermez. (Sadece gece yarısı 12/22/2013 ile bir maç verecek!) Aşağıdaki kod satırı çalışır:

If Int(Cells(i, 1).Value) = Date Then Cells(i, 1).Font.Color = vbRed

Açıklama: sadece Int işlevini kullanıyoruz. Int işlevi bir sayıyı en yakın tam sayıya yuvarlar. Bu şekilde tarihleri ​​tarihsiz olarak alabilir ve bu tarihleri ​​Tarihle karşılaştırabiliriz.

Sonuç:

Eşit Olmayan Tarihler

10. Sabahları içeren tüm hücreleri vurgulamak için aşağıdaki kod satırını ekleyin.

If (Cells(i, 1).Value - Int(Cells(i, 1).Value)) < 0.5 Then Cells(i, 1).Font.Color = vbRed

Açıklama: Sadece ondalıklara ihtiyacımız var, bu nedenle tamsayı kısmını çıkarıyoruz. Öğlen (günün yarısı) 0,5 olarak temsil edilir. 0,5'ten düşük olan ölümler sabahın saatleridir.

Sonuç:

Sabahın Vakti

Ayrıca oku: