Λειτουργία εβδομάδας Excel VBA
Η εργάσιμη ημέρα στο VBA είναι μια συνάρτηση ημερομηνίας και ώρας που χρησιμοποιείται για τον προσδιορισμό της εργάσιμης ημέρας μιας δεδομένης ημερομηνίας υπό την προϋπόθεση ότι αυτή είναι μια είσοδος, αυτή η συνάρτηση επιστρέφει μια ακέραια τιμή από 1 έως 7 εύρος, υπάρχει ένα προαιρετικό όρισμα που παρέχεται σε αυτήν τη συνάρτηση που είναι η πρώτη ημέρα της εβδομάδας, αλλά αν δεν παρέχουμε την πρώτη ημέρα της εβδομάδας τότε η συνάρτηση αναλαμβάνει την Κυριακή ως την πρώτη ημέρα της εβδομάδας από προεπιλογή.
Μπορούμε να πούμε τον αριθμό της εβδομάδας κοιτάζοντας μια συγκεκριμένη ημερομηνία; Ναι, μπορούμε να πούμε τον αριθμό της ημέρας εκείνη την εβδομάδα, ανάλογα με την ημέρα έναρξης της εβδομάδας. Στις κανονικές λειτουργίες φύλλων εργασίας, έχουμε μια συνάρτηση που ονομάζεται WEEKDAY στο excel για να πούμε τον αριθμό της εβδομάδας για μια συγκεκριμένη ημερομηνία. Και στο VBA, έχουμε την ίδια λειτουργία για να βρούμε το ίδιο πράγμα.

Τι κάνει η λειτουργία της εβδομάδας;
Η συνάρτηση της εργάσιμης ημέρας επιστρέφει τον παρεχόμενο αριθμό της ημερομηνίας της ημερομηνίας στην εβδομάδα. Για παράδειγμα, αν έχετε ημερομηνίες 01 ης Απριλίου έως 07 χιλ Απρίλιο και αν θέλετε να ξέρετε την ημέρα της ημερομηνίας 05 ης Απριλίου του ημέρα έναρξης της εβδομάδας είναι από τη Δευτέρα, είναι η 5 ης ημέρας.
Για να το βρούμε, έχουμε την ίδια λειτουργία με το "Weekday" σε ένα φύλλο εργασίας καθώς και στο VBA. Παρακάτω είναι η σύνταξη της συνάρτησης.

Ημερομηνία: Για ποια ημερομηνία προσπαθούμε να βρούμε την ημέρα της εβδομάδας. Αυτή πρέπει να είναι η κατάλληλη ημερομηνία με τη σωστή μορφή.
(Πρώτη ημέρα της εβδομάδας): Για να προσδιορίσουμε την ημέρα της εβδομάδας της παρεχόμενης Ημερομηνίας, πρέπει να αναφέρουμε ποια είναι η πρώτη ημέρα της εβδομάδας. Από προεπιλογή, η VBA θεωρεί τη «Δευτέρα» ως την ημέρα έναρξης της εβδομάδας. Εκτός από αυτό, μπορούμε να παρέχουμε και τις παρακάτω ημέρες.

Παραδείγματα
Παράδειγμα # 1
Για να ξεκινήσω τη διαδικασία, επιτρέψτε μου να ξεκινήσω με ένα απλό παράδειγμα. Τώρα θα προσπαθήσουμε να βρούμε την ημέρα της εβδομάδας για την ημερομηνία "10-Απρίλιος-2019".
Βήμα 1: Ορίστε τη μεταβλητή ως συμβολοσειρά
Κώδικας:
Sub Weekday_Example1 () Dim k As String End Sub

Βήμα 2: Εκχώρηση τιμής στη μεταβλητή
Αντιστοιχίστε την τιμή στη μεταβλητή "k" εφαρμόζοντας τη συνάρτηση WEEKDAY.
Κώδικας:
Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub

Βήμα 3: Εισαγάγετε ημερομηνία στη συνάρτηση
Η ημερομηνία που δοκιμάζουμε εδώ είναι «10-Απρ-2019», οπότε περάστε την ημερομηνία ως «10-Απρ-2019».
Κώδικας:
Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019" End Sub

Βήμα 4: Εμφάνιση τιμής μεταβλητής στο MsgBox
Από προεπιλογή, παίρνει την πρώτη ημέρα της εβδομάδας ως "Δευτέρα", επομένως αγνοήστε αυτό το μέρος. Κλείστε το βραχίονα. Η επόμενη γραμμή δείχνει την τιμή της μεταβλητής "k" στο πλαίσιο μηνυμάτων VBA.
Κώδικας:
Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019") MsgBox k End Sub

Εντάξει, τελειώσαμε.
Αν τρέξουμε τον κώδικα, θα έχουμε το αποτέλεσμα ως «4» επειδή ξεκινώντας από την Κυριακή, η παρεχόμενη ημερομηνία (10-Απρ-2019) πέφτει στο 4 ου ημέρα της εβδομάδας.
Σημείωση: Η ημέρα έναρξης της εβδομάδας του συστήματός μου είναι «Κυριακή».
Ομοίως, εάν αλλάξετε την ημέρα έναρξης της εβδομάδας, συνεχίζει να ποικίλλει. Παρακάτω είναι μια γραμμή παραδείγματος για το ίδιο.
Κώδικας:
k = Weekday ("10-Apr-2019", vbMonday) 'Αυτό επιστρέφει 3 k = Weekday ("10-Apr-2019", vbTuesday)' Αυτό επιστρέφει 2 k = Weekday ("10-Apr-2019", vbWednesday) 'Αυτό επιστρέφει 1 k = Weekday ("10-Apr-2019", vbThursday)' Αυτό επιστρέφει 7 k = Weekday ("10-Apr-2019", vbFriday) "Αυτό επιστρέφει 6 k = Weekday (" 10-Apr-2019 ", vbSaturday) 'Επιστρέφει 5 k = Ημέρα της εβδομάδας (" 10-Απρ-2019 ", vbSunday)' Αυτό επιστρέφει 4
Παράδειγμα # 2 - Άφιξη αν η ημερομηνία είναι το Σαββατοκύριακο ή όχι
Ας υποθέσουμε ότι έχετε μια ημερομηνία όπως παρακάτω και θέλετε να βρείτε την επόμενη ημερομηνία Σαββατοκύριακου, τότε μπορούμε να χρησιμοποιήσουμε τη συνάρτηση WEEKDAY για να φτάσουμε στα αποτελέσματα.

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.

Κοιτάξτε τα κελιά B6 & B7. Έχουμε το αποτέλεσμα ως "Αυτή είναι στην πραγματικότητα η ημερομηνία του Σαββατοκύριακου" επειδή οι ημερομηνίες "04-Μάιος-2019" και "06-Απρ-2019" είναι στην πραγματικότητα ημερομηνίες Σαββατοκύριακου, επομένως δεν χρειάζεται να εμφανιστεί η ημερομηνία του Σαββατοκύριακου για τις ημερομηνίες του Σαββατοκύριακου. Από προεπιλογή, έχουμε το αποτέλεσμα ως εξής.