Αντιγράψτε μια στήλη ή στήλες από κάθε φύλλο σε ένα φύλλο χρησιμοποιώντας VBA στο Microsoft Excel

Anonim

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

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

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

Για να αντιγράψετε δεδομένα από διαφορετικά φύλλα σε ένα νέο φύλλο, έχουμε δημιουργήσει μια μακροεντολή "CopyColumns". Αυτή η μακροεντολή μπορεί να εκτελεστεί κάνοντας κλικ στο κουμπί "Εκτέλεση μακροεντολής" στο φύλλο "Κύρια".

Η μακροεντολή "CopyColumns" θα εισαγάγει ένα νέο φύλλο που ονομάζεται "Master" μετά το φύλλο "Main". Το φύλλο "Κύριο" θα περιέχει συγκεντρωτικά δεδομένα από όλα τα φύλλα.

Επεξήγηση κώδικα

Φύλλα εργασίας. Προσθήκη (μετά: = Φύλλα εργασίας ("Κύρια"))

Ο παραπάνω κώδικας χρησιμοποιείται για την εισαγωγή νέων φύλλων εργασίας μετά το φύλλο εργασίας "Κύριο".

Εάν Source.Name "Master" And Source.Name "Main" Τότε

Τέλος εαν

Ο παραπάνω κώδικας χρησιμοποιείται για τον περιορισμό αντιγράφων δεδομένων από το φύλλο "Κύριο" και "Κύριο".

Source.UsedRange.Copy Destination.Columns (Last)

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

Για κάθε πηγή σε αυτό το βιβλίο εργασίας. Φύλλα εργασίας

Εάν Source.Name = "Master" Τότε

MsgBox "Το κύριο φύλλο υπάρχει ήδη"

Έξοδος Sub

Τέλος εαν

Επόμενο

Ο παραπάνω κώδικας χρησιμοποιείται για να ελέγξει εάν το φύλλο "Master" υπάρχει ήδη στο βιβλίο εργασίας. Η μακροεντολή θα σταματήσει την εκτέλεση εάν το φύλλο "Master" υπάρχει ήδη στο βιβλίο εργασίας.

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

 Option Explicit Sub CopyColumns () Dim Source ως φύλλο εργασίας Dim Προορισμός ως φύλλο εργασίας Dim Last As Long Application.ScreenUpdating = Λάθος 'Ελέγξτε αν υπάρχει ήδη φύλλο "Master" στο βιβλίο εργασίας για κάθε πηγή στο ThisWorkbook.Worksets If Source.Name = "Master" Στη συνέχεια, MsgBox "Master φύλλο υπάρχει ήδη" Exit Sub End If Next "Εισαγωγή νέων φύλλων εργασίας στο βιβλίο εργασίας Set Destination = Worksheets.Add (after: = Worksheets (" Main "))" Renaming the worksheet Destination.Name = "Master" Looping μέσω των φύλλων εργασίας στο βιβλίο εργασίας για κάθε πηγή σε αυτό το βιβλίο εργασίας. Φύλλα εργασίας εάν πηγή. Όνομα "Κύριος" Και πηγή. Όνομα "Κύριο" Στη συνέχεια "Εύρεση της τελευταίας στήλης από το φύλλο προορισμού Last = Destination.Range (" A1 "). SpecialCells ( xlCellTypeLastCell). Στήλη Αν Τελευταία = 1 Στη συνέχεια «Επικόλληση των δεδομένων στο φύλλο προορισμού Source.UsedRange.Copy Destination.Columns (Last) Else Source.UsedRange.Copy Destination.Colons (Last + 1) End If End If Next Columns.AutoFit Application.ScreenUpdating = True End Sub 

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

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