Παραθέστε και προσθέστε ημέρες μηνών σε μια καθορισμένη περίοδο χρησιμοποιώντας το VBA στο Microsoft Excel

Anonim

Σε αυτό το άρθρο, θα δημιουργήσουμε μια μακροεντολή για να απαριθμήσουμε τους μήνες μεταξύ της καθορισμένης περιόδου και επίσης τον αριθμό ημερών του συγκεκριμένου μήνα. Θα εμφανίσει επίσης το συνολικό αριθμό ημερών μεταξύ της καθορισμένης περιόδου.

Δημιουργήσαμε τη μακροεντολή "DaysInPeriod" για να αναφέρουμε μήνες και αριθμό ημερών σε ένα μήνα. Η μακροεντολή μπορεί να εκτελεστεί κάνοντας κλικ στο κουμπί "Υποβολή".

Πριν από την εκτέλεση της μακροεντολής, κάποιος πρέπει να παράσχει πληροφορίες για την ημερομηνία έναρξης και λήξης. Λαμβάνει τιμή στο κελί "G6" ως ημερομηνία έναρξης και τιμή στο κελί "G7" ως ημερομηνία λήξης. Η έξοδος θα εμφανιστεί παρακάτω στο κελί "F9".

Κάνοντας κλικ στο κουμπί υποβολής, η μακροεντολή θα εμφανίσει το όνομα του μήνα στη στήλη F και τον αριθμό των ημερών εκείνου του μήνα στη στήλη G. Η τελευταία σειρά θα εμφανίσει συνολικό αριθμό ημερών μεταξύ της καθορισμένης περιόδου.

Λογική εξήγηση

Στη μακροεντολή, ξεκινάμε το βρόχο από την ημερομηνία έναρξης έως την καθορισμένη ημερομηνία λήξης. Ενώ κάνουμε loop, ελέγχουμε την τελευταία ημερομηνία ενός μήνα. Εάν συναντηθεί η τελευταία ημερομηνία ενός μήνα, τότε το όνομα του μήνα και ο αριθμός ημερών του μήνα εμφανίζονται στις στήλες F και G. ομοίως, ελέγχουμε επίσης για ημερομηνία λήξης. Όταν βρεθεί η ημερομηνία λήξης, εμφανίζεται η καταχώριση για τον τελευταίο μήνα και ο αριθμός ημερών του μήνα.

Ακολουθήστε παρακάτω για τον κωδικό

 Option Explicit Sub DaysInPeriod () Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Clearing προηγούμενο εύρος περιεχομένου ("F10: G1048576"). ClearContents' Getting start and end Date StartDate = Range ("G6") EndDate = Εύρος ("G7") "Εκκίνηση της μεταβλητής στον αριθμό γραμμής έναρξης intRow = 10" Καταχώριση των μηνών και του αριθμού των ημερών από την ημερομηνία έναρξης έως την ημερομηνία λήξης Do intDays = intDays + 1 "Έλεγχος για την τελευταία ημερομηνία του μήνα ή όταν η ημερομηνία έναρξης είναι ίση σε EndDate If (Month (StartDate) Month (StartDate + 1)) Start StartDate = EndDate Στη συνέχεια «Εισαγωγή κελιών ονόματος μήνα (intRow, 6) = Format (StartDate," mmmm ") 'Εισαγωγή αριθμού ημερών στα κελιά του μήνα ( intRow 7 = Κελιά "Σύνολο ημερών" (intRow, 7) = Application.Sum (Range ("G10: G" & intRow)) End Sub 

Αν σας άρεσε αυτό το blog, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.

Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email