VBA Hari Kerja

Fungsi Hari Kerja VBA Excel

Hari kerja di VBA adalah fungsi tanggal dan waktu yang digunakan untuk mengidentifikasi hari kerja dari tanggal tertentu asalkan sebagai input, fungsi ini mengembalikan nilai integer dari rentang 1 hingga 7, ada argumen opsional yang disediakan untuk fungsi ini yang merupakan hari pertama dalam seminggu tetapi jika kami tidak memberikan hari pertama dalam seminggu maka fungsi menganggap Minggu sebagai hari pertama dalam minggu secara default.

Bisakah kita mengetahui nomor hari kerja dengan melihat tanggal tertentu? Ya, kami dapat menentukan nomor hari dalam minggu itu tergantung pada hari pertama dalam seminggu. Dalam fungsi lembar kerja biasa, kami memiliki fungsi yang disebut WEEKDAY di excel untuk memberi tahu jumlah minggu untuk tanggal tertentu. Di VBA juga kami memiliki fungsi yang sama untuk menemukan hal yang sama.

Apa fungsi Weekday Function?

Fungsi hari kerja mengembalikan nomor hari tanggal yang disediakan dalam seminggu. Misalnya, jika Anda memiliki tanggal 01 April hingga 07 April dan jika Anda ingin mengetahui tanggal 05 April jika hari awal minggu adalah dari Senin, itu adalah hari ke-5.

Untuk menemukan ini kami memiliki fungsi yang sama "Hari Kerja" di lembar kerja serta di VBA. Di bawah ini adalah sintaks dari fungsinya.

Tanggal: Untuk tanggal apa kami mencoba mencari hari kerja. Ini harus merupakan tanggal yang tepat dengan format yang benar.

[Hari Pertama dalam Seminggu]: Untuk menentukan hari kerja dari Tanggal yang disediakan, kami perlu menyebutkan apa hari pertama dalam minggu itu. Secara default, VBA menganggap "Senin" sebagai hari awal dalam seminggu. Selain itu, kami juga dapat menyediakan hari-hari di bawah ini.

Contoh

Anda dapat mendownload Template Excel Fungsi WeekDay VBA ini di sini - Template Excel Fungsi WeekDay VBA

Contoh 1

Untuk memulai prosesnya, izinkan saya memulai dengan contoh sederhana terlebih dahulu. Sekarang kita akan mencoba mencari hari kerja untuk tanggal “10-April-2019”.

Langkah 1: Tentukan variabel sebagai String

Kode:

 Sub Hari Kerja_Contoh1 () Dim k Sebagai String End Sub 

Langkah 2: Tetapkan nilai ke variabel

Tetapkan nilai ke variabel "k" dengan menerapkan fungsi WEEKDAY.

Kode:

 Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub 

Langkah 3: Masukkan Tanggal dalam Fungsi

Tanggal yang kami uji di sini adalah "10-Apr-2019", jadi berikan tanggal sebagai "10-Apr-2019".

Kode:

 Sub Hari Kerja_Contoh1 () Dim k Sebagai String k = Hari Kerja ("10-Apr-2019" End Sub 

Langkah 4: Tunjukkan Nilai Variabel di MsgBox

Secara default, hari pertama dalam seminggu sebagai "Senin", jadi abaikan bagian ini. Tutup braket. Pada baris berikutnya tunjukkan nilai variabel “k” di kotak pesan VBA.

Kode:

 Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019") MsgBox k End Sub 

Ok, kita sudah selesai.

Jika kita menjalankan kode kita akan mendapatkan hasil sebagai “4” karena mulai hari Minggu tanggal yang ditentukan (10-Apr-2019) jatuh pada hari ke-4 dalam seminggu.

Catatan: Hari mulai sistem saya dalam seminggu adalah "Minggu".

Demikian pula, jika Anda mengubah hari awal dalam seminggu, itu akan terus berubah. Di bawah ini adalah contoh baris yang sama.

Kode:

k = Hari Kerja ("10-Apr-2019", vbMonday) 'Ini mengembalikan 3 k = Hari Kerja ("10-Apr-2019", vbTuesday)' Ini mengembalikan 2 k = Hari Kerja ("10-Apr-2019", vbWednesday) 'Ini mengembalikan 1 k = Hari Kerja ("10-Apr-2019", vbKamis)' Ini mengembalikan 7 k = Hari Kerja ("10-Apr-2019", vbFriday) 'Ini mengembalikan 6 k = Hari Kerja ("10-Apr-2019 ", vbSaturday) 'Ini mengembalikan 5 k = Hari Kerja (" 10-Apr-2019 ", vbSunday)' Ini mengembalikan 4 

Contoh # 2 - Tiba Baik Tanggal di Akhir Pekan atau Tidak

Asumsikan Anda memiliki tanggal seperti di bawah ini dan Anda ingin mencari tanggal akhir pekan berikutnya maka kita dapat menggunakan fungsi WEEKDAY untuk sampai pada hasilnya.

Kita perlu menggunakan WEEKDAY dengan kondisi IF dan loop untuk sampai pada hasil. Saya telah menulis kode agar Anda pergi baris demi baris untuk mendapatkan logika.

Kode:

 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 (Sel (k, 1). Value, vbMonday) = 2 Kemudian Cells (k, 2). Value = Cells (k, 1) + 4 ElseIf Weekday (Cells (k, 1). Value, vbMonday) = 3 Then Cells (k, 2) .Value = Sel (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 = "Ini sebenarnya akhir pekan Tanggal "Berakhir Jika Berikutnya k Akhiri Sub 

Ini akan sampai pada hasil di bawah ini.

Lihat sel B6 & B7 yang kami dapatkan hasilnya sebagai "Ini sebenarnya tanggal akhir pekan" karena tanggal "04-Mei-2019" dan "06-Apr-2019" sebenarnya adalah tanggal akhir pekan, jadi tidak perlu menampilkan tanggal akhir pekan untuk kencan akhir pekan. Secara default, kami mendapatkan hasil seperti ini.