Το Excel VBA είναι αναπόσπαστο μέρος του αυτοματισμού του Excel και η χρήση και τα οφέλη του VBA δεν μπορούν να υπονομευθούν. Εάν βρίσκεστε σε μια δύσκολη μάχη προσπαθώντας να ενοποιήσετε πολλά φύλλα και βιβλία εργασίας στο Excel, είμαστε εδώ για να σας βοηθήσουμε.

Οι μακροεντολές που αναφέρονται σε αυτόν τον οδηγό θα σας βοηθήσουν να επιτύχετε τη φαινομενικά ανυπέρβλητη εργασία μέσα σε λίγα δευτερόλεπτα (ή λεπτά, εάν τα στοιχεία δεδομένων είναι μεγάλα).

Ακολουθώντας αυτό το σεμινάριο, θα δημιουργήσετε τη δική σας μακροεντολή VBA στο Excel και θα συγχωνεύσετε αποτελεσματικά πολλά φύλλα σε ένα μόνο αρχείο.

Συγχώνευση πολλών φύλλων Excel σε ένα αρχείο

Για αυτήν την εργασία, τα δεδομένα αποθηκεύονται στα ακόλουθα φύλλα:

  • Φύλλο 1
  • Φύλλο2
  • Φύλλο 3

Τα ονόματα φύλλων που αναφέρονται παραπάνω είναι μόνο για λόγους απεικόνισης. Αυτή η μακροεντολή VBA είναι γενική και δεν εξαρτάται από τα ονόματα των φύλλων. μπορείτε να προσαρμόσετε τον κωδικό ώστε να τον χρησιμοποιείτε με οποιοδήποτε όνομα(α) φύλλου.

instagram viewer

Προαπαιτούμενα για την εκτέλεση του Κώδικα

Υπάρχουν ορισμένες προϋποθέσεις για την εκτέλεση του κώδικα VBA που αναφέρονται παρακάτω.

Πρέπει να αποθηκεύσετε τον κώδικα μακροεντολής σε ένα νέο αρχείο Excel. Αποθηκεύστε αυτό το βιβλίο εργασίας με α .xlsm επέκταση. Μπορείτε να αποθηκεύσετε το βιβλίο εργασίας μακροεντολών VBA με οποιοδήποτε όνομα.

Ανοίξτε ένα νέο αρχείο Excel. τύπος Alt + F11 στο πληκτρολόγιό σας για να ανοίξετε το πρόγραμμα επεξεργασίας Excel VBA. Μόλις ανοίξει το πρόγραμμα επεξεργασίας, προσθέστε μια νέα ενότητα κώδικα κάνοντας κλικ στο Εισάγετε καρτέλα στο επάνω μέρος. Επιλέγω Μονάδα μέτρησης για να εισαγάγετε μια νέα ενότητα. Εδώ θα εισαγάγετε τον κωδικό μακροεντολής VBA που δίνεται παρακάτω.

Τα φύλλα δεδομένων που θα ενοποιηθούν θα πρέπει να βρίσκονται σε άλλο ξεχωριστό βιβλίο εργασίας συνολικά. Το όνομα του βιβλίου εργασίας και των φύλλων μπορεί να είναι ό, τι επιλέξετε.

Μόλις εκτελέσετε τον κώδικα VBA, η μακροεντολή VBA θα κυκλοφορήσει σε κάθε διαθέσιμο φύλλο εργασίας στο πρωτεύον βιβλίο εργασίας (βιβλίο εργασίας δεδομένων) και επικολλήστε τα περιεχόμενα σε ένα φύλλο που προστέθηκε πρόσφατα μέσα στο ίδιο ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΙΩΝ.

Τα συγκεντρωτικά δεδομένα θα είναι διαθέσιμα στο φύλλο που ονομάζεται Ενοποιημένος.

Εκτέλεση του κώδικα VBA

Ήρθε η ώρα να εκτελέσετε τον πρόσφατα αποθηκευμένο κώδικα μακροεντολής. Αντιγράψτε και επικολλήστε αυτόν τον κώδικα στη λειτουργική μονάδα του επεξεργαστή VBA:

Subconsolidate_shts()
«Δηλώστε τις διάφορες μεταβλητές που χρησιμοποιούνται στον κώδικα και τους τύπους δεδομένων vba
Dim sht ως φύλλο εργασίας, sht1 ως φύλλο εργασίας, lastrow ως ακέραιος αριθμός, lastrow1 ως ακέραιος
«απενεργοποιήστε το τρεμόπαιγμα της οθόνης και τα αναδυόμενα παράθυρα ειδοποίησης κατά την εκτέλεση
Με την Εφαρμογή
.ScreenUpdating = False
.DisplayAlerts = Λάθος
Τέλος με
'αποθηκεύστε το όνομα του κύριου βιβλίου εργασίας στη μεταβλητή a macro. Αντικαταστήστε το Test.xlsx με το όνομα του κύριου βιβλίου εργασίας σας
Ορισμός wbk1 = Βιβλία εργασίας ("Test.xlsx")
«ενεργοποιήστε το βιβλίο εργασίας πριν εκτελέσετε τις λειτουργίες σε αυτό
wbk1.Ενεργοποίηση
Εκτελέστε έναν βρόχο vba for για να ελέγξετε εάν υπάρχει ήδη ένα φύλλο Consolidated. Εάν υπάρχει, ο βρόχος for θα το διαγράψει.
Για κάθε sht Στο wbk1.Sheets
Αν sht. Όνομα = "Ενοποιημένο" Στη συνέχεια sht. Διαγράφω
Επόμενο sht
«Προσθέστε ένα νέο φύλλο για την αποθήκευση των πρόσφατα ενοποιημένων δεδομένων
Φύλλα εργασίας. Προσθήκη. Όνομα = "Ενοποιημένο"
«Προσθέστε μερικές κεφαλίδες σε κάθε μεμονωμένη στήλη στο συγκεντρωτικό φύλλο
Με Φύλλα ("Συγκεντρωτικά")
.Range("a1").Value = "OrderDate"
.Range("b1").Value = "Region"
.Range("c1").Value = "Rep"
.Range("d1").Value = "Item"
.Range("e1").Value = "Units"
.Range("f1").Value = "UnitCost"
.Range("g1").Value = "Total"

Τέλος με
«Το φύλλο που δημιουργήθηκε πρόσφατα θα περιέχει τα ενοποιημένα δεδομένα από κάθε μεμονωμένο φύλλο στο κύριο βιβλίο εργασίας

Για i = 1 Προς wbk1.Φύλλα εργασίας. μετρώ
Αν Φύλλα (i).Όνομα <> «Ενοποιημένο» Τότε
«Καταγράψτε την τελευταία συμπληρωμένη σειρά από τα φύλλα δεδομένων στο βιβλίο εργασίας
lastrow = Φύλλα (i).Range("a1").End (xlDown).Σειρά
«Καταγράψτε την τελευταία συμπληρωμένη σειρά στο Ενοποιημένο φύλλο
lastrow1 = wbk1.Sheets("Ενοποιημένα").Range("a1048576").End (xlUp).Σειρά + 1

«Αντιγράψτε δεδομένα από το φύλλο προέλευσης και επικολλήστε το στο συγκεντρωτικό φύλλο
Φύλλα (i).Range("a2:g" & lastrow).Αντιγραφή Προορισμός:=Φύλλα("Ενοποιημένα").Range("a" & lastrow1)
Τέλος εαν
Επόμενο i
«Ενεργοποιήστε τις λειτουργίες Excel VBA για μελλοντική χρήση
Με την Εφαρμογή
.ScreenUpdating = Αληθές
.DisplayAlerts = True
Τέλος με

End Sub

Επεξήγηση του κώδικα VBA

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

Μόλις δηλώσετε τις μεταβλητές, χρειάζεται κάποια βασική φροντίδα. Αυτό γίνεται απενεργοποιώντας το τρεμόπαιγμα της οθόνης και καταστέλλοντας τις αναδυόμενες ειδοποιήσεις. Για παράδειγμα, όταν διαγράφετε ένα υπάρχον φύλλο χρησιμοποιώντας τον κώδικα VBA, ένα μήνυμα στο Excel ζητά επιβεβαίωση πριν από τη διαγραφή του φύλλου. Οι προτροπές όπως αυτή καταστέλλονται για να βελτιωθεί η ταχύτητα εκτέλεσης.

Στο επόμενο βήμα, πρέπει να ορίσετε το όνομα του βιβλίου εργασίας, το οποίο περιέχει όλα τα δεδομένα σας. Αντικαθιστώ Test.xlsx με το όνομα και την επέκταση του ονόματος του βιβλίου εργασίας σας. Φροντίστε να περιβάλλετε το όνομα με εισαγωγικά.

Ενεργοποιήστε το κύριο βιβλίο εργασίας και διαγράψτε τυχόν υπάρχοντα φύλλα με το όνομα Ενοποιημένος για την εξάλειψη τυχόν προηγουμένως αποθηκευμένων δεδομένων. Ο κώδικας VBA εναλλάσσεται σε κάθε φύλλο και μόλις συναντήσει το όνομα του φύλλου Ενοποιημένος θα το διαγράψει. Αυτό γίνεται χρησιμοποιώντας το Δήλωση VBA IF, το οποίο ελέγχει για λογικές συνθήκες και διαγράφει το φύλλο αμέσως μόλις εκπληρωθεί η προϋπόθεση.

Ένα νέο φύλλο προστίθεται στο κύριο βιβλίο εργασίας για την αποθήκευση των συγκεντρωτικών δεδομένων. Στη συνέχεια, προστίθενται προδιαμορφωμένες, τυποποιημένες κεφαλίδες σε αυτό το φύλλο. Μπορείτε να αλλάξετε τις τιμές των τίτλων (κεφαλίδες στηλών) ενημερώνοντας τις πληροφορίες δίπλα στις αναφορές κελιών εντός εισαγωγικών.

Για παράδειγμα: .Range("a1") = "OrderDate" μπορεί να αντικατασταθεί με .Range("a1") = "OrderNumber"

Στη συνέχεια, ένας βρόχος VBA FOR εναλλάσσεται σε κάθε φύλλο εργασίας, αντιγράφει τα περιεχόμενα του φύλλου και επικολλά τα περιεχόμενα στο Ενοποιημένος φύλλο εργασίας πριν μεταβείτε στο επόμενο φύλλο του βιβλίου εργασίας. Αυτή η διαδικασία επαναλαμβάνεται μέχρι να αντιγραφούν όλα τα φύλλα.

Κατά τη διάρκεια αυτής της διαδικασίας, όλες οι σειρές υπολογίζονται αυτόματα και επικολλούνται στο Ενοποιημένο φύλλο. Η τελευταία συμπληρωμένη σειρά υπολογίζεται αυτόματα πριν επικολληθούν τα δεδομένα. Η μακροεντολή είναι δυναμική και μπορεί να προσαρμοστεί σε διάφορες σειρές δεδομένων σε κάθε φύλλο εργασίας.

Σχετίζεται με: Προηγμένες δυνατότητες του Microsoft Excel που πρέπει να γνωρίζετε

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

Ενοποίηση πολλών φύλλων με χρήση μακροεντολής Excel VBA

Το Excel VBA είναι μια περιττή γλώσσα προγραμματισμού, η οποία λειτουργεί καλά με όλα τα στοιχεία του Excel. Κάθε κομμάτι κώδικα είναι απαραίτητο και είναι σημαντικό να θυμάστε ότι η εκτέλεση εξαρτάται από ένα σύστημα εκτέλεσης γραμμή προς γραμμή, επομένως δεν πρέπει να αλλάξετε τη σειρά των γραμμών κώδικα.

Για να προσαρμόσετε τον κώδικα για τις απαιτήσεις σας, μπορείτε να κάνετε τις απαιτούμενες αλλαγές και να εκτελέσετε αυτόν τον κωδικό για να ενοποιήσετε τα δεδομένα αποτελεσματικά και αποτελεσματικά μέσα σε δευτερόλεπτα.

5 Ωραίες μακροεντολές Microsoft Excel για ταξινόμηση δεδομένων

Κάντε τη διαχείριση δεδομένων παιχνιδάκι με αυτές τις μακροεντολές του Excel.

Διαβάστε Επόμενο

ΜερίδιοΤιτίβισμαΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Σχετικά θέματα
  • Προγραμματισμός
  • Microsoft Excel
  • Μακροεντολές
  • Προγραμματισμός
Σχετικά με τον Συγγραφέα
Gaurav Siyal (Δημοσιεύτηκαν 21 άρθρα)

Ο Gaurav Siyal έχει δύο χρόνια συγγραφικής εμπειρίας, γράφοντας για μια σειρά από εταιρείες ψηφιακού μάρκετινγκ και έγγραφα κύκλου ζωής λογισμικού.

Περισσότερα από τον Gaurav Siyal

Εγγραφείτε στο ενημερωτικό μας δελτίο

Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για να εγγραφείτε