Excel VBA για την αντιγραφή σειρών σε άλλο φύλλο εργασίας με βάση τα κριτήρια

  • Μοιραστείτε Αυτό
Hugh West

Δεδομένα αντιμετώπισης , βάσει κριτηρίων, από ένα φύλλο σε ένα άλλο είναι μία από τις εργασίες που γίνονται συχνά στο Excel. Αν έχετε πολλές γραμμές και θέλετε να τις αντιγράψετε σε ένα άλλο φύλλο βάσει κάποιων κριτηρίων μπορεί να είναι αρκετά κουραστικό και χρονοβόρο. Αλλά με τη Microsoft Εφαρμογή Visual Basic (VBA) μπορείτε να δημιουργήσετε μακροεντολές με τις οποίες μπορείτε εύκολα να αντιγράψετε δεδομένα από ένα φύλλο σε ένα άλλο με βάση διαφορετικά κριτήρια. Σε αυτό το άρθρο, θα σας δείξω πώς μπορείτε να αντιγράψετε σειρές σε ένα άλλο φύλλο εργασίας με βάση 2 διαφορετικούς τύπους κριτηρίων χρησιμοποιώντας το Excel VBA .

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

Κατεβάστε το βιβλίο ασκήσεων

Αντιγραφή γραμμών σε άλλο φύλλο εργασίας με βάση Criteria.xlsm

2 τρόποι αντιγραφής σειρών σε άλλο φύλλο εργασίας με βάση κριτήρια από το Excel VBA

1. Αντιγραφή γραμμών σε άλλο φύλλο εργασίας βάσει κριτηρίων κειμένου

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

➤ Τύπος ALT+F11 για να ανοίξετε το VBA παράθυρο.

Στο VBA παράθυρο,

➤ Κάντε κλικ στο Εισαγωγή και επιλέξτε Ενότητα .

Θα ανοίξει το Ενότητα (κωδικός) παράθυρο. Τώρα,

➤ Εισάγετε τον ακόλουθο κώδικα στο αρχείο Ενότητα (κωδικός) παράθυρο,

 Sub Copy_Criteria_Text() Application.ScreenUpdating = False With ActiveSheet .AutoFilterMode = False With Range("C1", Range("C" & Rows.Count).End(xlUp)) .AutoFilter 1, "Virginia" On Error Resume Next .Offset(1).EntireRow.Copy Sheet3.Range("A" & Rows.Count).End(xlUp).Offset(1) End With .AutoFilterMode = False End With Application.ScreenUpdating = TrueSheet3.Select End Sub 

Ο κώδικας θα δημιουργήσει μια μακροεντολή με όνομα Copy_Criteria_Text που θα αναζητήσει τη Virginia στη στήλη C του τρέχοντος φύλλου εργασίας και επιστρέφει τις γραμμές που περιέχουν τη Virginia στο φύλλο εργασίας με την ονομασία Πωλήσεις περιοχής (Φύλλο3).

Μετά από αυτό,

➤ Κλείστε ή ελαχιστοποιήστε το VBA παράθυρο.

➤ Τύπος ALT+F8

Θα ανοίξει το Μάκρο παράθυρο.

➤ Επιλέξτε Copy_Criteria_Text στο Όνομα μακροεντολής και κάντε κλικ στο Εκτέλεση .

Ως αποτέλεσμα, οι γραμμές με τη Virginia θα αντιγραφούν στο φύλλο εργασίας με την ονομασία Πωλήσεις περιοχής

Διαβάστε περισσότερα: Πώς να αντιγράψετε σειρές αυτόματα στο Excel σε άλλο φύλλο (4 μέθοδοι)

2. Αντιγραφή γραμμών σε άλλο φύλλο εργασίας βάσει κριτηρίων αριθμού

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

➤ Τύπος ALT+F11 για να ανοίξετε το VBA παράθυρο.

Στο VBA παράθυρο,

➤ Κάντε κλικ στο Εισαγωγή και επιλέξτε Ενότητα .

Θα ανοίξει το Ενότητα (κωδικός) παράθυρο. Τώρα,

➤ Εισάγετε τον ακόλουθο κώδικα στο αρχείο Ενότητα (κωδικός) παράθυρο,

 Sub Copy_Criteria_Number() Application.ScreenUpdating = False With ActiveSheet .AutoFilterMode = False With Range("D1", Range("D" & Rows.Count).End(xlUp)) .AutoFilter 1, ">100000" On Error Resume Next .Offset(1).EntireRow.Copy Sheet4.Range("A" & Rows.Count).End(xlUp).Offset(1) End With .AutoFilterMode = False End With Application.ScreenUpdating =True Sheet4.Select End Sub 

Ο κώδικας θα δημιουργήσει μια μακροεντολή με όνομα Copy_Criteria_Number που θα αναζητήσει τιμές μεγαλύτερες από 100000 στη στήλη D του φύλλου εργασίας με την ονομασία Δεδομένα και να επιστρέψει τις γραμμές που περιέχουν τιμές πωλήσεων άνω των 100000 δολαρίων στο φύλλο εργασίας με την ονομασία Κορυφαίες πωλήσεις (Φύλλο4).

Μετά από αυτό,

➤ Κλείστε ή ελαχιστοποιήστε το VBA παράθυρο.

➤ Τύπος ALT+F8

Θα ανοίξει το Μάκρο παράθυρο.

➤ Επιλέξτε Copy_Criteria_Number στο Όνομα μακροεντολής και κάντε κλικ στο Εκτέλεση .

Ως αποτέλεσμα, οι γραμμές που περιέχουν τιμές πωλήσεων άνω των 100000 δολαρίων θα αντιγραφούν στο Κορυφαίες πωλήσεις φύλλο εργασίας.

Διαβάστε περισσότερα: Πώς να αντιγράψετε πολλαπλές γραμμές στο Excel χρησιμοποιώντας μακροεντολές (4 παραδείγματα)

Συμπέρασμα

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

Ο Hugh West είναι ένας εξαιρετικά έμπειρος εκπαιδευτής και αναλυτής του Excel με πάνω από 10 χρόνια εμπειρίας στον κλάδο. Είναι κάτοχος πτυχίου Λογιστικής και Χρηματοοικονομικής και μεταπτυχιακού στη Διοίκηση Επιχειρήσεων. Ο Hugh έχει πάθος για τη διδασκαλία και έχει αναπτύξει μια μοναδική προσέγγιση διδασκαλίας που είναι εύκολο να ακολουθηθεί και να κατανοηθεί. Οι εξειδικευμένες γνώσεις του στο Excel έχουν βοηθήσει χιλιάδες φοιτητές και επαγγελματίες παγκοσμίως να βελτιώσουν τις δεξιότητές τους και να διαπρέψουν στην καριέρα τους. Μέσω του ιστολογίου του, ο Hugh μοιράζεται τις γνώσεις του με τον κόσμο, προσφέροντας δωρεάν μαθήματα Excel και διαδικτυακή εκπαίδευση για να βοηθήσει άτομα και επιχειρήσεις να αξιοποιήσουν πλήρως τις δυνατότητές τους.