VBA trong tuần - Hướng dẫn từng bước về Hàm ngày trong tuần trong VBA

Hàm trong tuần Excel VBA

Weekday trong VBA là một hàm ngày và giờ được sử dụng để xác định ngày trong tuần của một ngày cụ thể với điều kiện là giá trị đầu vào, hàm này trả về một giá trị nguyên từ 1 đến 7 phạm vi, có một đối số tùy chọn được cung cấp cho hàm này là ngày đầu tiên của tuần nhưng nếu chúng ta không cung cấp ngày đầu tiên trong tuần thì theo mặc định, hàm sẽ giả định Chủ nhật là ngày đầu tiên trong tuần.

Chúng ta có thể biết số ngày trong tuần bằng cách nhìn vào một ngày cụ thể không? Có, chúng tôi có thể cho biết số ngày trong tuần đó, tùy thuộc vào ngày bắt đầu của tuần. Trong các hàm trang tính thông thường, chúng ta có một hàm được gọi là WEEKDAY trong excel để cho biết số tuần cho một ngày cụ thể. Trong VBA cũng vậy, chúng ta có cùng một chức năng là tìm thứ giống nhau.

Chức năng ngày trong tuần làm gì?

Hàm ngày trong tuần trả về số ngày của ngày đã cung cấp trong tuần. Ví dụ, nếu bạn có ngày 01 st tháng Tư đến 07 ngày tháng Tư và nếu bạn muốn biết ngày kể từ ngày 05 tháng tháng tư nếu ngày bắt đầu của tuần bắt đầu từ ngày thứ hai, nó là 5 ngày ngày.

Để tìm điều này, chúng tôi có chức năng tương tự như "Ngày trong tuần" trong trang tính cũng như trong VBA. Dưới đây là cú pháp của hàm.

Ngày: Chúng tôi đang cố gắng tìm ngày trong tuần cho ngày nào. Đây phải là một ngày thích hợp với định dạng chính xác.

(Ngày đầu tiên trong tuần): Để xác định ngày trong tuần của Ngày đã cung cấp , chúng ta cần đề cập đến ngày đầu tiên của tuần là gì. Theo mặc định, VBA coi “Thứ Hai” là ngày bắt đầu trong tuần. Ngoài ra, chúng tôi có thể cung cấp những ngày dưới đây.

Ví dụ

Ví dụ 1

Để bắt đầu quá trình tố tụng, trước tiên hãy để tôi bắt đầu với một ví dụ đơn giản. Bây giờ chúng tôi sẽ cố gắng tìm ngày trong tuần cho ngày “10 tháng 4 năm 2019”.

Bước 1: Định nghĩa biến là Chuỗi

Mã:

Sub Weekday_Example1 () Dim k As String End Sub
Bước 2: Gán giá trị cho biến

Gán giá trị cho biến “k” bằng cách áp dụng hàm WEEKDAY.

Mã:

Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub
Bước 3: Nhập ngày vào hàm

Ngày chúng tôi đang thử nghiệm ở đây là "10 tháng 4 năm 2019", vì vậy hãy chuyển ngày là "10 tháng 4 năm 2019".

Mã:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-April-2019" End Sub
Bước 4: Hiển thị giá trị của biến trong MsgBox

Theo mặc định, ngày đầu tiên của tuần là "Thứ Hai", vì vậy hãy bỏ qua phần này. Đóng dấu ngoặc. Dòng tiếp theo hiển thị giá trị của biến “k” trong hộp thông báo VBA.

Mã:

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

Ok, chúng tôi đã hoàn thành.

Nếu chúng tôi chạy mã, chúng tôi sẽ nhận được kết quả là "4" vì bắt đầu từ Chủ nhật, ngày được cung cấp (10 tháng 4 năm 2019) rơi vào ngày thứ 4 trong tuần.

Lưu ý: Ngày bắt đầu trong tuần của hệ thống của tôi là "Chủ nhật".

Tương tự, nếu bạn thay đổi ngày bắt đầu trong tuần, thì ngày đó sẽ thay đổi. Dưới đây là một dòng ví dụ cho điều tương tự.

Mã:

k = Ngày trong tuần ("10-Tháng 4-2019", vbMonday) 'Điều này trả về 3 k = Ngày trong tuần ("10-Tháng 4-2019", vbTuesday)' Điều này trả về 2 k = Ngày trong tuần ("10-Tháng 4-2019", vbWednesday) 'Điều này trả về 1 k = Ngày trong tuần ("10-Tháng 4-2019", vbThursday)' Điều này trả về 7 k = Ngày trong tuần ("10-Tháng 4-2019", vbFriday) 'Điều này trả về 6 k = Ngày trong tuần ("10-Tháng 4-2019 ", vbSaturday) 'Giá trị này trả về 5 k = Ngày trong tuần (" 10-Tháng 4 năm 2019 ", vbSunday)' Kết quả này trả về 4

Ví dụ # 2 - Đến Cho dù Ngày là Cuối tuần hay Không

Giả sử bạn có một ngày như bên dưới và bạn muốn tìm ngày cuối tuần tiếp theo, thì chúng ta có thể sử dụng hàm WEEKDAY để đến kết quả.

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.

Nhìn vào các ô B6 & B7. Chúng tôi nhận được kết quả là “Đây thực sự là ngày cuối tuần” vì các ngày “04-05 / 2019” và “06-04-2019” thực sự là các ngày cuối tuần, vì vậy không cần hiển thị ngày cuối tuần cho các ngày cuối tuần. Theo mặc định, chúng tôi nhận được kết quả như thế này.

thú vị bài viết...