Εβδομάδα VBA | Βήμα προς βήμα Οδηγός για τη λειτουργία της εβδομάδας στο VBA

Λειτουργία εβδομάδας Excel VBA

Η εργάσιμη ημέρα στο VBA είναι μια συνάρτηση ημερομηνίας και ώρας που χρησιμοποιείται για τον προσδιορισμό της εργάσιμης ημέρας μιας δεδομένης ημερομηνίας, υπό την προϋπόθεση ότι αυτή είναι μια είσοδος, αυτή η συνάρτηση επιστρέφει μια ακέραια τιμή από 1 έως 7 εύρος, υπάρχει ένα προαιρετικό όρισμα που παρέχεται σε αυτήν τη συνάρτηση που είναι η πρώτη ημέρα της εβδομάδας, αλλά αν δεν παρέχουμε την πρώτη ημέρα της εβδομάδας τότε η συνάρτηση αναλαμβάνει την Κυριακή ως την πρώτη ημέρα της εβδομάδας από προεπιλογή.

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

Τι κάνει η λειτουργία της εβδομάδας;

Η συνάρτηση της εβδομάδας επιστρέφει τον παρεχόμενο αριθμό της ημερομηνίας της ημερομηνίας στην εβδομάδα. Για παράδειγμα, εάν έχετε ημερομηνίες από 1 Απριλίου έως 7 Απριλίου και αν θέλετε να μάθετε την ημέρα της ημερομηνίας 05 Απριλίου εάν η ημέρα έναρξης της εβδομάδας είναι από τη Δευτέρα, είναι η 5η ημέρα.

Για να το βρούμε αυτό έχουμε την ίδια λειτουργία "Weekday" σε ένα φύλλο εργασίας όπως και στο VBA. Παρακάτω είναι η σύνταξη της συνάρτησης.

Ημερομηνία: Για ποια ημερομηνία προσπαθούμε να βρούμε την ημέρα της εβδομάδας. Αυτή πρέπει να είναι η κατάλληλη ημερομηνία με τη σωστή μορφή.

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

Παραδείγματα

Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA WeekDay Function Excel εδώ - Πρότυπο VBA WeekDay Function Excel

Παράδειγμα # 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 για να φτάσουμε στα αποτελέσματα.

Πρέπει να χρησιμοποιήσουμε την WEEKDAY με συνθήκη IF και βρόχους για να φτάσουμε στο αποτέλεσμα. Έχω γράψει τον κωδικό για να πηγαίνετε γραμμή προς γραμμή για να πάρετε τη λογική.

Κώδικας:

 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 (Κελιά (k, 1). Αξία, vb Δευτέρα) = 2 Στη συνέχεια κελιά (k, 2). Τιμή = Κελιά (k, 1) + 4 ElseIf Weekday (Κελιά (k, 1). Τιμή, vb Δευτέρα) = 3 Στη συνέχεια κελιά (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 = "Αυτό είναι στην πραγματικότητα το σαββατοκύριακο Ημερομηνία "Λήξη εάν Επόμενο 

Αυτό θα φτάσει στα παρακάτω αποτελέσματα.

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