Αυτόματη συμπλήρωση σε VBA
Αυτό το άρθρο δείχνει πώς να χρησιμοποιήσετε την Αυτόματη συμπλήρωση σε VBA.
Η αυτόματη συμπλήρωση είναι ένα εξαιρετικό εργαλείο στο Excel όταν τα δεδομένα είναι επαναλαμβανόμενα ή εάν είναι διαδοχικά (όπως ημέρες της εβδομάδας, ημερομηνίες, μήνες του έτους κ.λπ.). Συνήθως θα γεμίζαμε το πρώτο ζεύγος κελιών με απαιτούμενα δεδομένα και στη συνέχεια θα χρησιμοποιούσαμε την Αυτόματη συμπλήρωση για να αντιγράψουμε τα απαιτούμενα δεδομένα σε ένα επιλεγμένο εύρος.
Όλα αυτά μπορούν να γίνουν χρησιμοποιώντας μια μακροεντολή VBA.
Αυτόματη συμπλήρωση με χρήση αυξανόμενων αριθμών
Πρώτον, στον κώδικά μας, μπορούμε να δηλώσουμε δύο μεταβλητές εύρους.
Η επιλογή 1 είναι το εύρος με τα δεδομένα προς αυτόματη συμπλήρωση - για παράδειγμα 1 και 2.
Η επιλογή 2 είναι η ολόκληρος εύρος έως αυτόματη συμπλήρωση, αυτό περιλαμβάνει το πρώτο εύρος συν τα κενά διαστήματα για αυτόματη συμπλήρωση.
Στη συνέχεια, χρησιμοποιούμε τη μέθοδο αυτόματης συμπλήρωσης για να συμπληρώσουμε το δεύτερο εύρος επιλογής.
123456789101112131415 | Public Sub MyAutoFill ()από το easyexcel.net«Δήλωση μεταβλητών εύρουςΕλαφριά επιλογή1 Ως εύροςΕλαφριά επιλογή2 Ως εύρος«Ορισμός μεταβλητών εύρους = τα αντίστοιχα εύρη τουςΟρισμός επιλογής1 = Φύλλο1. Εύρος ("A1: A2")Ρύθμιση επιλογής2 = Φύλλο1.Range ("A1: A12")«Αυτόματη συμπλήρωσηselection1.AutoFill Προορισμός: = επιλογή2Τέλος υπο |
Στη συνέχεια, μπορούμε να εκτελέσουμε τη μακροεντολή στο Εύρος αυτόματης συμπλήρωσης (A1: A12).
Όταν χρησιμοποιούμε τη μέθοδο αυτόματης συμπλήρωσης, μπορούμε να επιλέξουμε τον τύπο της αυτόματης συμπλήρωσης που επιθυμούμε να εκτελέσουμε. Στο παραπάνω παράδειγμα, δεν καθορίσαμε τον τύπο της Αυτόματης συμπλήρωσης που σημαίνει ότι χρησιμοποιήθηκε ο προεπιλεγμένος τύπος - σε αυτήν την περίπτωση, αυξάνοντας τους αριθμούς κατά 1 σε κάθε γραμμή.
Αυτόματη συμπλήρωση με χρήση μηνών
Η μακροεντολή για την αυτόματη συμπλήρωση με χρήση μηνών είναι σχεδόν πανομοιότυπη με αυτήν που χρησιμοποιείται για την αύξηση των αριθμών, με μία σημαντική εξαίρεση.
1234567891011 | Δημόσιος υποσυμπλήρωση μηνών ()από το easyexcel.net«Δήλωση μεταβλητών εύρουςΕλαφριά επιλογή1 Ως εύροςΕλαφριά επιλογή2 Ως εύρος«Ορισμός μεταβλητών εύρους = τα αντίστοιχα εύρη τουςΟρισμός επιλογής1 = Φύλλο1. Εύρος ("A1: A2")Ρύθμιση επιλογής2 = Φύλλο1.Range ("A1: A12")«Αυτόματη συμπλήρωση των μηνώνΠροορισμός αυτόματης συμπλήρωσης: = selection2, Type: = xlFillMonthsΤέλος υπο |
Όταν συμπληρώνουμε τον τύπο της αυτόματης συμπλήρωσης, μας δίνεται ένας αριθμός σταθερών Excel για να διαλέξετε. Εάν το αφήσουμε εκτός, το Excel θα καθορίσει τον τύπο δεδομένων που θα συμπληρώσει από τα αρχικά δεδομένα που δόθηκαν.
Το Excel είναι σε θέση να επιλέξει τυπικές σειρές όπως μήνες, ημέρες της εβδομάδας και πρόσθετους αριθμούς χωρίς ωστόσο να χρειάζεται να χρησιμοποιήσει το όρισμα Τύπος.
Αυτόματη συμπλήρωση χρησιμοποιώντας xlFillCopy
Εάν θέλουμε να χρησιμοποιήσουμε μια μακροεντολή AutoFill για να αντιγράψουμε τις πληροφορίες σε νέα κελιά, μπορούμε να χρησιμοποιήσουμε το xlFillCopy Constant.
1234567 | Public Sub AutoFillCopy ()Dim Selection1 As RangeDim Selection2 As RangeΟρισμός επιλογής1 = Φύλλο1. Εύρος ("A1: A1")Set Selection2 = Sheet1.Range ("A1: A12")Selection1.AutoFill Προορισμός: = Επιλογή2, Τύπος: = xlFillCopyΤέλος υπο |
Η εκτέλεση αυτής της μακροεντολής θα αντιγράψει τα δεδομένα στο εύρος ("A1") έως το εύρος ("A1: A12") αντί να γεμίσει αυτόματα τα κελιά με τους επόμενους μήνες από το "Jan".
Αυτόματη συμπλήρωση χρησιμοποιώντας xlFlashFill
Όταν πρέπει να μετατρέψουμε κείμενο σε στήλες στο Excel, μπορούμε είτε να χρησιμοποιήσουμε την επιλογή κείμενο σε στήλες είτε να χρησιμοποιήσουμε μια επιλογή που ονομάζεται Flash Fill. Αυτό είναι εξαιρετικά χρήσιμο στο VBA.
Πάρτε για παράδειγμα τα ακόλουθα δεδομένα:
Μπορούμε να πληκτρολογήσουμε το επώνυμο "Tolley" στο κελί B2 και στη συνέχεια να χρησιμοποιήσουμε μια μακροεντολή για να συμπληρώσουμε Flash τα υπόλοιπα δεδομένα.
1234567 | Υπο FlashFill ()Dim Selection1 As RangeDim Selection2 As RangeSet Selection1 = Range ("B2: B2")Set Selection2 = Range ("B2: B15")Selection1.AutoFill Προορισμός: = Επιλογή2, Τύπος: = xlFlashFillΤέλος υπο |
Στη συνέχεια, μπορούμε να επαναλάβουμε αυτό τις στήλες C, D και E για να λάβουμε τα υπόλοιπα δεδομένα.
1234567891011 | Set Selection1 = Range ("C2: C2")Set Selection2 = Range ("C2: C15")Selection1.AutoFill Προορισμός: = Επιλογή2, Τύπος: = xlFlashFillSet Selection1 = Range ("D2: D2")Set Selection2 = Range ("D2: D15")Selection1.AutoFill Προορισμός: = Επιλογή2, Τύπος: = xlFlashFillSet Selection1 = Range ("E2: E2")Set Selection2 = Range ("E2: E15")Selection1.AutoFill Προορισμός: = Επιλογή2, Τύπος: = xlFlashFill |
Στη συνέχεια, κάθε στήλη θα συμπληρωθεί με τα κατάλληλα δεδομένα με βάση την τιμή της γραμμής 2.