Vba'da eomonth nasıl kullanılır (örnekle)
Belirli bir tarih için ayın son gününü döndürmek için VBA’da EoMonth yöntemini kullanabilirsiniz.
Bu yöntemi pratikte kullanmanın yaygın bir yolu:
Sub LastDayOfMonth()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = Application.WorksheetFunction.EoMonth(Range(" A " & i), 0)
Range(" C " & i).NumberFormat = " m/d/yyyy "
Next i
End Sub
Bu özel makro, A2:A11 aralığındaki her tarih için ayın son gününü bulur ve bu tarihi C2:C11 aralığındaki karşılık gelen hücrede görüntüler.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA’da EoMonth nasıl kullanılır?
Bir şirketin farklı tarihlerde yaptığı satışlara ilişkin bilgileri içeren Excel’de aşağıdaki veri setine sahip olduğumuzu varsayalım:
A sütunundaki her tarih için ayın son gününü bulup C sütununda görüntülemek istediğimizi varsayalım.
Bunun için aşağıdaki makroyu oluşturabiliriz:
Sub LastDayOfMonth()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = Application.WorksheetFunction.EoMonth(Range(" A " & i), 0)
Range(" C " & i).NumberFormat = " m/d/yyyy "
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
C sütununun, A sütununda karşılık gelen her tarih için ayın son gününü içerdiğini unutmayın.
Tarih değerlerini, Excel’de varsayılan format olan seri numaraları yerine C sütununda tanınabilir bir tarih formatında görüntülemek için NumberFormat özelliğini kullandığımızı unutmayın.
Ayrıca, EoMonth yönteminin son argümanının, ayın son gününü hesaplarken kullanılacak ilerideki veya gerideki ay sayısını belirttiğini unutmayın.
Bu örnekte içinde bulunulan ayın son gününü bulmak istediğimizi belirtmek için 0 değerini kullandık.
Ancak bunun yerine önceki ayın son gününü bulmak istediğimizi belirtmek için -1 değerini veya bir sonraki ayın son gününü bulmak istediğimizi belirtmek için 1 değerini kullanabiliriz.
Not : EoMonth yönteminin tam belgelerini VBA’da burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA’da tarihler nasıl karşılaştırılır
VBA’da dizeyi tarihe dönüştürme
VBA’da iki tarih arasındaki günler nasıl hesaplanır