Hari Kerja VBA - Panduan Langkah demi Langkah untuk Fungsi Hari Kerja di VBA

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 nomor 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 st April hingga 07 th April dan jika Anda ingin tahu hari tanggal 05 th April jika hari mulai minggu adalah dari hari Senin, itu adalah 5 th hari.

Untuk menemukan ini, kami memiliki fungsi yang sama dengan "Weekday" di lembar kerja dan juga 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 , kita 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

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 Weekday_Example1 () 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. Baris berikutnya menunjukkan 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 kodenya, kita akan mendapatkan hasil sebagai “4” karena mulai hari Minggu, tanggal yang diberikan (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 minggu, 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.

We need to use WEEKDAY with IF condition and loops to arrive at the result. I have written the code for you to go line by line to get the logic.

Code:

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 = "This is actually the weekend Date" End If Next k End Sub

This will arrive at the results below.

Lihatlah sel B6 & B7. Kami mendapat hasil 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 tanggal akhir pekan. Secara default, kami mendapatkan hasil seperti ini.

Artikel yang menarik...