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

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

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

Προϋποθέσεις για τη δημιουργία του δικού σας κώδικα μακροεντολής VBA

Χρειάζεστε ένα βιβλίο εργασίας για να φιλοξενήσετε τον κώδικα VBA, ενώ τα υπόλοιπα βιβλία εργασίας δεδομένων προέλευσης είναι ξεχωριστά. Επιπλέον, δημιουργήστε ένα βιβλίο εργασίας

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

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

Δημιουργία του δικού σας κώδικα Excel VBA

Μόλις τα προαπαιτούμενα είναι εκτός λειτουργίας, είναι καιρός να εμβαθύνετε στον κώδικα και να αρχίσετε να χάνετε τα βασικά για να τον προσαρμόσετε στις απαιτήσεις σας.

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

Πάτα το Alt+F11 πληκτρολογήστε στο Excel για να ανοίξετε το πρόγραμμα επεξεργασίας μακροεντολών VBA. Επικολλήστε τον κώδικα που γράφτηκε παρακάτω και αποθηκεύστε το αρχείο ως βιβλίο εργασίας με δυνατότητα Macro (.xlsm επέκταση).

Sub openfiles()

«Δηλώστε τις μεταβλητές που χρησιμοποιούνται στον κώδικα VBA

Dim MyFolder As String, MyFile As String, wbmain As Workbook, lastrow As Long

Απενεργοποιήστε αυτές τις λειτουργίες για να βελτιώσετε την επεξεργασία κώδικα

Με την Εφαρμογή
.DisplayAlerts = Λάθος
.ScreenUpdating = False
Τέλος με

'αλλάξτε τη διαδρομή του φακέλου όπου πρόκειται να αποθηκευτούν τα αρχεία σας

MyFolder = InputBox("Εισαγωγή διαδρομής του φακέλου Consolidation") & "\"

«καθορίστε την αναφορά του φακέλου σε μια μεταβλητή μακροεντολής

MyFile = Dir (MyFolder)

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

Do while Len (MyFile) > 0

«ενεργοποιήστε το βιβλίο εργασίας Ενοποίηση

Windows ("Ενοποίηση"). Ενεργοποίηση

'υπολογίστε την τελευταία συμπληρωμένη σειρά

Εύρος ("a1048576"). Επιλέξτε
Επιλογή. Τέλος (xlUp). Επιλέξτε
ActiveCell. Μετατόπιση (1, 0). Επιλέξτε

'άνοιξε το πρώτο βιβλίο εργασίας μέσα στο φάκελο Consolidation

Τετράδια εργασιών. Ανοίξτε το όνομα αρχείου:=MyFolder & MyFile

Windows (MyFile).Ενεργοποίηση

«Κάντε εναλλαγή σε κάθε φύλλο μέσα στα βιβλία εργασίας για να αντιγράψετε τα δεδομένα

Dim ws As φύλλο εργασίας
Για κάθε ws σε φύλλα

ws. Θέτω εις ενέργειαν
ws. AutoFilterMode = False

«αγνοήστε την κεφαλίδα και αντιγράψτε τα δεδομένα από τη σειρά 2
Αν Κελιά (2, 1) = "" Τότε Μετάβαση στο 1

Μετάβαση στο 10

1: Επόμενο

10: Εύρος ("a2:az20000").Αντιγραφή

Windows ("Ενοποίηση"). Ενεργοποίηση

«επικολλήστε τα αντιγραμμένα περιεχόμενα

Ενεργό Φύλλο. Επικόλληση

Windows (MyFile).Ενεργοποίηση

'κλείστε το ανοιχτό βιβλίο εργασίας μόλις επικολληθούν τα δεδομένα

ActiveWorkbook. Κλείσε

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

MyFile = Dir()

'άνοιξε το επόμενο αρχείο στο φάκελο

Βρόχος

«ενεργοποιήστε τις απενεργοποιημένες λειτουργίες για μελλοντική χρήση

Με την Εφαρμογή
.DisplayAlerts = True
.ScreenUpdating = Αληθές
Τέλος με

End Sub

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

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

Σχετίζεται με: Ιστότοποι και ιστολόγια για να μάθετε Συμβουλές και κόλπα του Excel

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

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

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

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

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

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

Σχετίζεται με: Καλύτερα διαδικτυακά μαθήματα για Master Advanced Excel

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

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

Προσαρμογές βάσει χρήστη

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

MyFolder = InputBox("Εισαγωγή διαδρομής του φακέλου Consolidation") & "\"

Προς το:

MyFolder = "Διαδρομή φακέλου" & "\"

Επιπλέον, μπορείτε επίσης να αλλάξετε τις αναφορές στηλών, καθώς το βήμα δεν περιλαμβάνεται σε αυτόν τον κώδικα. Απλώς αντικαταστήστε την αναφορά της τελικής στήλης με την τελευταία συμπληρωμένη τιμή στήλης (Α-Ω, σε αυτήν την περίπτωση). Πρέπει να θυμάστε ότι η τελευταία συμπληρωμένη σειρά υπολογίζεται μέσω του κώδικα μακροεντολής, επομένως πρέπει να αλλάξετε μόνο την αναφορά στήλης.

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

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

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

Εάν κάνετε οποιεσδήποτε αλλαγές στον κώδικα, πρέπει να βεβαιωθείτε ότι δεν θα αλλάξετε τη σειρά των κωδικών, καθώς αυτό θα διαταράξει την εκτέλεση του κώδικα.

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

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

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

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

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

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

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

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

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