Vba: tarihi hafta numarasına dönüştürme
Bir tarihi hafta numarasına dönüştürmek için VBA’da aşağıdaki temel sözdizimini kullanabilirsiniz:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
Next i
End Sub
Bu özel örnek, A2:A9 aralığındaki her tarih için hafta numarasını bulacak ve sonuçları B2:B9 aralığında gösterecektir.
VBA WeekNum yönteminin haftaların Pazar günü başladığını varsaydığını unutmayın.
Haftanın başlangıcı olarak başka bir günü belirtmek için WeekNum yöntemine ikinci bir bağımsız değişken ekleyebilirsiniz:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
Next i
End Sub
Aşağıdaki örnek, pratikte tarihleri hafta sayılarına dönüştürmek için WeekNum yönteminin nasıl kullanılacağını gösterir.
Örnek: VBA’da tarihi hafta numarasına dönüştürün
Excel’de aşağıdaki tarih sütununun bulunduğunu varsayalım:
Her tarihi bir hafta numarasına dönüştürmek ve hafta numarasını B sütununda görüntülemek istediğimizi varsayalım.
Bunun için aşağıdaki makroyu oluşturabiliriz:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
B sütunu, haftaların Pazar günü başladığını varsayarak, A sütunundaki her tarih için hafta numarasını görüntüler.
Haftanın başlangıcı olarak başka bir günü (örneğin Pazartesi) belirtmek isterseniz aşağıdaki sözdizimini kullanabilirsiniz:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Haftaların Pazartesi günü başladığı varsayılarak, B sütunu artık B sütunundaki her tarih için hafta numarasını görüntüler.
Not : VBA WeekNum yöntemine ilişkin tüm belgeleri 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