Excel VBA Hafta İçi İşlevi
VBA'da hafta içi gün, belirli bir tarihin bir girdi olması koşuluyla, haftanın gününü tanımlamak için kullanılan bir tarih ve saat işlevidir, bu işlev 1 ila 7 aralığında bir tamsayı değeri döndürür, bu işleve isteğe bağlı bir argüman sağlanmıştır. Haftanın ilk günü, ancak haftanın ilk gününü sağlamazsak, işlev varsayılan olarak Pazar'ı haftanın ilk günü olarak kabul eder.
Belirli bir tarihe bakarak hafta içi gün numarasını söyleyebilir miyiz? Evet, haftanın başlangıç gününe bağlı olarak o haftanın gün numarasını söyleyebiliriz. Normal çalışma sayfası işlevlerinde, belirli bir tarih için hafta sayısını söylemek için excel'de WEEKDAY adlı bir işleve sahibiz. VBA'da da aynı şeyi bulmak için aynı işleve sahibiz.

Hafta İçi İşlevi ne işe yarar?
Hafta içi işlevi, sağlanan tarihin hafta içindeki gün numarasını döndürür. Eğer tarih 01 varsa Örneğin, st 07 Nisan inci Nisan ve tarihe 05 gününü bilmek istiyorsanız inci haftanın başlangıç günü Pazartesi ise nisan, bu 5'tir inci günü.
Bunu bulmak için, bir çalışma sayfasında ve VBA'da "Hafta içi" ile aynı işleve sahibiz. Fonksiyonun sözdizimi aşağıdadır.

Tarih: Hangi tarih için haftanın gününü bulmaya çalışıyoruz. Bu, doğru formatta uygun bir tarih olmalıdır.
(Haftanın İlk Günü): sağlanan bir hafta içi belirlemek için Tarih, biz haftanın ilk günü ne bahsetmek gerekir. Varsayılan olarak, VBA "Pazartesi" yi haftanın başlangıç günü olarak kabul eder. Bunun dışında aşağıdaki günleri de tedarik edebiliriz.

Örnekler
Örnek 1
İşlemlere başlamak için önce basit bir örnekle başlayayım. Şimdi “10-Nisan-2019” tarihinin hafta içi gününü bulmaya çalışacağız.
Adım 1: Değişkeni String olarak tanımlayın
Kod:
Sub Weekday_Example1 () Dim k As String End Sub

Adım 2: Değişkene değer atayın
HAFTA GÜNÜ işlevini uygulayarak değeri "k" değişkenine atayın.
Kod:
Alt Weekday_Example1 () Dim k As String k = Hafta içi (End Sub

Adım 3: İşlevde Tarih Girin
Burada test ettiğimiz tarih "10 Nisan 2019", bu nedenle tarihi "10 Nisan 2019" olarak geçin.
Kod:
Alt Hafta içi_Örnek1 () Dim k As String k = Hafta içi ("10-Nis-2019" End Sub

Adım 4: MsgBox'ta Değişkenin Değerini Göster
Varsayılan olarak, haftanın ilk gününü "Pazartesi" olarak alır, bu nedenle bu bölümü dikkate almayın. Desteği kapatın. Sonraki satır, VBA mesaj kutusundaki "k" değişkeninin değerini gösterir.
Kod:
Alt Hafta Günü_Örnek1 () Dim k As String k = Hafta içi ("10-Nis-2019") MsgBox k End Sub

Tamam, bitirdik.
Biz kod çalıştırmasına, biz Pazar başlayarak, çünkü verilen tarihi (10 Nisan-2019) 4 düşer “4” olarak sonuç elde edecek inci haftanın gününü.
Not: Sistemimin haftanın başlangıç günü "Pazar" dır.
Benzer şekilde, haftanın başlangıç gününü değiştirirseniz, değişmeye devam eder. Aşağıda bunun için bir örnek satır var.
Kod:
k = Hafta içi ("10-Nis-2019", vbMonday) 'Bu, 3 k = Hafta içi ("10-Nis-2019", vbTuesday) döndürür' Bu, 2 k = Hafta içi ("10-Nis-2019", vbÇarşamba) döndürür 'Bu, 1 k = Hafta içi ("10-Nis-2019", vbThursday) döndürür' Bu, 7 k = Hafta içi ("10-Nisan-2019", vbFriday) döndürür 'Bu, 6 k = Hafta içi ("10-Nis-2019 ", vbSaturday) 'Bu, 5 k = Hafta içi (" 10-Nis-2019 ", vbSunday) döndürür' Bu, 4 değerini döndürür
Örnek 2 - Tarih Hafta Sonunda Olsun ya da Olmasın
Aşağıdaki gibi bir tarihiniz olduğunu varsayalım ve bir sonraki hafta sonu tarihini bulmak istiyorsanız, sonuçlara ulaşmak için WEEKDAY işlevini kullanabiliriz.

Sonuca ulaşmak için WEEKDAY'i IF koşulu ve döngüleri ile kullanmalıyız. Mantığı almak için satır satır gitmeniz için kodu yazdım.
Kod:
Sub Weekend_Dates () Dim k As Integer For k = 2 To 9 If Weekday (Cells (k, 1) .Value, vbMonday) = 1 Then Cells (k, 2) .Value = Cells (k, 1) + 5 ElseIf Weekday (Cells (k, 1) .Value, vbMonday) = 2 Then Cells (k, 2) .Value = Cells (k, 1) + 4 ElseIf Weekday (Cells (k, 1) .Value, vbMonday) = 3 Then Cells (k, 2) .Value = Cells (k, 1) + 3 ElseIf Weekday (Cells (k, 1) .Value, vbMonday) = 4 Then Cells (k, 2) .Value = Cells (k, 1) + 2 ElseIf Weekday (Cells (k, 1) .Value, vbMonday) = 5 Then Cells (k, 2) .Value = Cells (k, 1) + 1 Else Cells (k, 2) .Value = "Bu aslında hafta sonu Tarih "Bitiş Olursa Bitir k Abonelik Sonu

Bu, aşağıdaki sonuçlara ulaşacaktır.

B6 ve B7 hücrelerine bakın. Sonucu "Bu aslında hafta sonu tarihi" olarak aldık çünkü "04-Mayıs-2019" ve "06-Nisan-2019" tarihleri aslında hafta sonu tarihleri, bu nedenle hafta sonu tarihleri için hafta sonu tarihini göstermeye gerek yok. Varsayılan olarak, sonucu bu şekilde alırız.