Πώς να καταγράψετε μια μακροεντολή στο Excel

  • Μοιραστείτε Αυτό
Michael Brown

Πίνακας περιεχομένων

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

Οι μακροεντολές είναι ένας πολύ καλός τρόπος για να αυτοματοποιήσετε επαναλαμβανόμενες εργασίες στο Excel. Αν πιάνετε τον εαυτό σας να κάνει τα ίδια πράγματα ξανά και ξανά, καταγράψτε τις κινήσεις σας ως μακροεντολή και ορίστε μια συντόμευση πληκτρολογίου σε αυτήν. Και τώρα, μπορείτε να έχετε όλες τις καταγεγραμμένες ενέργειες να εκτελούνται αυτόματα, με ένα μόνο πάτημα του πλήκτρου!

    Πώς να καταγράψετε μια μακροεντολή στο Excel

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

    Για να καταγράψετε μια μακροεντολή στο Excel, ακολουθήστε τα εξής βήματα:

    1. Στο Προγραμματιστής στην καρτέλα Κωδικός ομάδα, κάντε κλικ στο Μακροεντολή εγγραφής κουμπί.

      Εναλλακτικά, κάντε κλικ στο Μακροεντολή εγγραφής στην αριστερή πλευρά της οθόνης Κατάσταση bar:

      Αν προτιμάτε να εργάζεστε με το πληκτρολόγιο αντί για το ποντίκι, πατήστε την ακόλουθη ακολουθία πλήκτρων Alt , L , R (ένα προς ένα, όχι όλα τα πλήκτρα ταυτόχρονα).

    2. Στο Μακροεντολή εγγραφής παράθυρο διαλόγου που εμφανίζεται, ρυθμίστε τις κύριες παραμέτρους της μακροεντολής σας:
      • Στο Μάκρο όνομα Προσπαθήστε να το κάνετε ουσιαστικό και περιγραφικό, ώστε αργότερα να μπορείτε να βρίσκετε γρήγορα τη μακροεντολή στη λίστα.

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

      • Στο Πλήκτρο συντόμευσης πληκτρολογήστε οποιοδήποτε γράμμα για να εκχωρήσετε μια συντόμευση πληκτρολογίου στη μακροεντολή (προαιρετικά).

        Επιτρέπονται τόσο κεφαλαία όσο και πεζά γράμματα, αλλά θα ήταν συνετό να χρησιμοποιείτε συνδυασμούς πλήκτρων με κεφαλαία γράμματα ( Ctrl + Shift + γράμμα ), επειδή οι συντομεύσεις μακροεντολών παρακάμπτουν οποιεσδήποτε προεπιλεγμένες συντομεύσεις του Excel, ενώ το βιβλίο εργασίας που περιέχει τη μακροεντολή είναι ανοιχτό. Για παράδειγμα, αν αναθέσετε Ctrl + S σε μια μακροεντολή, θα χάσετε τη δυνατότητα να αποθηκεύσετε τα αρχεία του Excel με μια συντόμευση. Η ανάθεση Ctrl + Shift + S θα διατηρήσει τηντυπική συντόμευση αποθήκευσης.

      • Από το Αποθηκεύστε τη μακροεντολή σε επιλέξτε πού θέλετε να αποθηκεύσετε τη μακροεντολή σας:
        • Προσωπικό βιβλίο εργασίας μακροεντολών - αποθηκεύει τη μακροεντολή σε ένα ειδικό βιβλίο εργασίας που ονομάζεται Προσωπικά.xlsb Όλες οι μακροεντολές που είναι αποθηκευμένες σε αυτό το βιβλίο εργασίας είναι διαθέσιμες όποτε χρησιμοποιείτε το Excel.
        • Αυτό το βιβλίο εργασίας (προεπιλογή) - η μακροεντολή θα αποθηκευτεί στο τρέχον βιβλίο εργασίας και θα είναι διαθέσιμη όταν ανοίγετε ξανά το βιβλίο εργασίας ή το μοιράζεστε με άλλους χρήστες.
        • Νέο βιβλίο εργασίας - δημιουργεί ένα νέο βιβλίο εργασίας και καταγράφει τη μακροεντολή σε αυτό το βιβλίο εργασίας.
      • Στο Περιγραφή πληκτρολογήστε μια σύντομη περιγραφή του τι κάνει η μακροεντολή σας (προαιρετικά).

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

      • Κάντε κλικ στο OK για να ξεκινήσετε την εγγραφή της μακροεντολής.

    3. Εκτελέστε τις ενέργειες που θέλετε να αυτοματοποιήσετε (δείτε το παράδειγμα μακροεντολής εγγραφής).
    4. Όταν τελειώσετε, κάντε κλικ στο Διακοπή εγγραφής στο κουμπί Προγραμματιστής καρτέλα:

      Ή το ανάλογο κουμπί στο Κατάσταση bar:

    Παράδειγμα εγγραφής μιας μακροεντολής στο Excel

    Για να δούμε πώς λειτουργεί στην πράξη, ας καταγράψουμε μια μακροεντολή που εφαρμόζει κάποια μορφοποίηση στα επιλεγμένα κελιά. Για το σκοπό αυτό, κάντε τα εξής:

    1. Επιλέξτε ένα ή περισσότερα κελιά που θέλετε να μορφοποιήσετε.
    2. Στο Προγραμματιστής καρτέλα ή Κατάσταση γραμμή, κάντε κλικ στο Μακροεντολή εγγραφής .
    3. Στο Μακροεντολή εγγραφής διαλόγου, διαμορφώστε τις ακόλουθες ρυθμίσεις:
      • Ονομάστε τη μακροεντολή Header_Formatting (επειδή πρόκειται να μορφοποιήσουμε τις επικεφαλίδες των στηλών).
      • Τοποθετήστε τον κέρσορα στο Πλήκτρο συντόμευσης και πατήστε ταυτόχρονα τα πλήκτρα Shift + F. Αυτό θα εκχωρήσει τη συντόμευση Ctrl + Shift + F στη μακροεντολή.
      • Επιλέξτε την αποθήκευση της μακροεντολής σε αυτό το βιβλίο εργασίας.
      • Για το Περιγραφή , χρησιμοποιήστε το ακόλουθο κείμενο που εξηγεί τι κάνει η μακροεντολή: Κάνει το κείμενο έντονο, προσθέτει χρώμα γεμίσματος και κεντράρει .
      • Κάντε κλικ στο OK για να ξεκινήσετε την εγγραφή.

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

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

    5. Κάντε κλικ στο Διακοπή εγγραφής είτε στο Προγραμματιστής ή την καρτέλα Κατάσταση bar.

    Αυτό ήταν! Η μακροεντολή σας έχει καταγραφεί. Τώρα, μπορείτε να επιλέξετε οποιαδήποτε περιοχή κελιών σε οποιοδήποτε φύλλο, να πατήσετε την εκχωρημένη συντόμευση ( Ctrl+ Shift + F ) και η προσαρμοσμένη μορφοποίησή σας θα εφαρμοστεί αμέσως στα επιλεγμένα κελιά.

    Πώς να εργάζεστε με καταγεγραμμένες μακροεντολές στο Excel

    Όλες οι κύριες επιλογές που παρέχει το Excel για τις μακροεντολές μπορούν να προσπελαστούν μέσω της εντολής Μάκρο Για να το ανοίξετε, κάντε κλικ στο Μακροεντολές στο κουμπί Προγραμματιστής ή πατήστε τη συντόμευση Alt+ F8.

    Στο παράθυρο διαλόγου που ανοίγει, μπορείτε να προβάλετε μια λίστα μακροεντολών που είναι διαθέσιμες σε όλα τα ανοικτά βιβλία εργασίας ή που σχετίζονται με ένα συγκεκριμένο βιβλίο εργασίας και να χρησιμοποιήσετε τις ακόλουθες επιλογές:

    • Εκτέλεση - εκτελεί την επιλεγμένη μακροεντολή.
    • Μπείτε στο - σας επιτρέπει να κάνετε αποσφαλμάτωση και δοκιμή της μακροεντολής στον επεξεργαστή της Visual Basic.
    • Επεξεργασία - ανοίγει την επιλεγμένη μακροεντολή στον Επεξεργαστή VBA, όπου μπορείτε να δείτε και να επεξεργαστείτε τον κώδικα.
    • Διαγραφή - διαγράφει οριστικά την επιλεγμένη μακροεντολή.
    • Επιλογές - επιτρέπει την αλλαγή των ιδιοτήτων της μακροεντολής, όπως η σχετική Συντόμευση κλειδί και Περιγραφή .

    Πώς να προβάλετε μακροεντολές στο Excel

    Ο κώδικας μιας μακροεντολής του Excel μπορεί να προβληθεί και να τροποποιηθεί στο Visual Basic Editor. Για να ανοίξετε τον Editor, πατήστε Alt + F11 ή κάντε κλικ στο κουμπί Visual Basic στο κουμπί Προγραμματιστής καρτέλα.

    Αν βλέπετε τον επεξεργαστή VB για πρώτη φορά, μην αποθαρρύνεστε ή μην τρομάζετε. Δεν πρόκειται να μιλήσουμε για τη δομή ή τη σύνταξη της γλώσσας VBA. Αυτή η ενότητα θα σας δώσει απλώς μια βασική εικόνα για το πώς λειτουργούν οι μακροεντολές του Excel και τι ακριβώς κάνει η εγγραφή μιας μακροεντολής.

    Ο επεξεργαστής VBA διαθέτει πολλά παράθυρα, αλλά θα επικεντρωθούμε στα δύο κύρια:

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

    Παράθυρο κώδικα - εδώ μπορείτε να προβάλετε, να επεξεργαστείτε και να γράψετε κώδικα VBA για κάθε αντικείμενο που εμφανίζεται στην Εξερεύνηση έργου.

    Όταν καταγράψαμε τη μακροεντολή του δείγματος, συνέβησαν τα εξής στο backend:

    • Μια νέα ενότητα ( Moduel1 ) εισήχθη.
    • Ο κώδικας VBA της μακροεντολής γράφτηκε στο παράθυρο Code.

    Για να δείτε τον κώδικα μιας συγκεκριμένης ενότητας, κάντε διπλό κλικ στην ενότητα ( Ενότητα1 στην περίπτωσή μας) στο παράθυρο Project Explorer. Κανονικά, ένας κώδικας μακροεντολών έχει τα εξής μέρη:

    Όνομα μακροεντολής

    Στην VBA, κάθε μακροεντολή ξεκινά με Υπο που ακολουθείται από το όνομα της μακροεντολής και τελειώνει με End Sub , όπου "Sub" είναι η συντομογραφία για Υπορουτίνα (που ονομάζεται επίσης Διαδικασία Η μακροεντολή του δείγματός μας ονομάζεται Header_Formatting() , οπότε ο κώδικας αρχίζει με αυτή τη γραμμή:

    Sub Header_Formatting()

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

    Σχόλια

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

    Συνήθως, μια εγγεγραμμένη μακροεντολή έχει 1-3 γραμμές σχολίων: όνομα μακροεντολής (υποχρεωτικό), περιγραφή και συντόμευση (αν έχει καθοριστεί πριν από την εγγραφή).

    Εκτελέσιμος κώδικας

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

    Η παρακάτω εικόνα δείχνει τι κάνει κάθε μέρος του κώδικα της μακροεντολής μας:

    Πώς να εκτελέσετε μια καταγεγραμμένη μακροεντολή

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

    • Εάν έχετε ορίσει ένα συντόμευση πληκτρολογίου στη μακροεντολή, πατήστε αυτή τη συντόμευση.
    • Πατήστε Alt + 8 ή κάντε κλικ στο Μακροεντολές στο κουμπί Προγραμματιστής Στην καρτέλα Μάκρο παράθυρο διαλόγου, επιλέξτε την επιθυμητή μακροεντολή και κάντε κλικ στο Εκτέλεση .

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

    Πώς να αποθηκεύσετε μακροεντολές στο Excel

    Είτε καταγράψατε μια μακροεντολή είτε γράψατε κώδικα VBA με το χέρι, για να αποθηκεύσετε τη μακροεντολή, πρέπει να αποθηκεύσετε το βιβλίο εργασίας με ενεργοποιημένη τη μακροεντολή (.xlms επέκταση). Ακούστε πώς:

    1. Στο βιβλίο εργασίας που περιέχει τη μακροεντολή, κάντε κλικ στο κουμπί Αποθήκευση ή πατήστε Ctrl + S .
    2. Στο Αποθήκευση ως παράθυρο διαλόγου, επιλέξτε Βιβλίο εργασίας Excel με δυνατότητα μακροεντολών (*.xlsm) από το Αποθήκευση ως τύπος και στη συνέχεια κάντε κλικ στο κουμπί Αποθήκευση :

    Μακροεντολές του Excel: τι είναι και τι δεν καταγράφεται

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

    Τι καταγράφεται

    Η συσκευή εγγραφής μακροεντολών του Excel καταγράφει αρκετά πράγματα - σχεδόν όλα τα κλικ του ποντικιού και τα πλήκτρα. Έτσι, θα πρέπει να σκεφτείτε προσεκτικά τα βήματά σας για να αποφύγετε τον υπερβολικό κώδικα που μπορεί να οδηγήσει σε απροσδόκητη συμπεριφορά της μακροεντολής σας. Παρακάτω παρατίθενται μερικά παραδείγματα για το τι καταγράφει το Excel:

    • Επιλογή κελιών με το ποντίκι ή το πληκτρολόγιο. Καταγράφεται μόνο η τελευταία επιλογή πριν από μια ενέργεια. Για παράδειγμα, αν επιλέξετε την περιοχή A1:A10 και στη συνέχεια κάνετε κλικ στο κελί A11, θα καταγραφεί μόνο η επιλογή του A11.
    • Μορφοποίηση κελιών, όπως χρώμα γεμίσματος και γραμματοσειράς, ευθυγράμμιση, περιθώρια κ.λπ.
    • Μορφοποίηση αριθμών, όπως ποσοστό, νόμισμα κ.λπ.
    • Επεξεργασία τύπων και τιμών. Οι αλλαγές καταγράφονται αφού πατήσετε Enter .
    • Κύλιση, μετακίνηση παραθύρων του Excel, μετάβαση σε άλλα φύλλα εργασίας και βιβλία εργασίας.
    • Προσθήκη, ονομασία, μετακίνηση και διαγραφή φύλλων εργασίας.
    • Δημιουργία, άνοιγμα και αποθήκευση βιβλίων εργασίας.
    • Εκτέλεση άλλων μακροεντολών.

    Τι δεν μπορεί να καταγραφεί

    Παρά τα πολλά διαφορετικά πράγματα που μπορεί να καταγράψει το Excel, ορισμένα χαρακτηριστικά υπερβαίνουν τις δυνατότητες του Macro Recorder:

    • Προσαρμογές της κορδέλας του Excel και της γραμμής εργαλείων γρήγορης πρόσβασης.
    • Ενέργειες μέσα σε διαλόγους του Excel, όπως Μορφοποίηση υπό όρους ή Εύρεση και αντικατάσταση (μόνο το αποτέλεσμα καταγράφεται).
    • Αλληλεπιδράσεις με άλλα προγράμματα. Για παράδειγμα, δεν μπορείτε να καταγράψετε αντιγραφή/επικόλληση από ένα βιβλίο εργασίας του Excel σε ένα έγγραφο του Word.
    • Οτιδήποτε περιλαμβάνει τον επεξεργαστή VBA. Αυτό θέτει τους σημαντικότερους περιορισμούς - πολλά πράγματα που μπορούν να γίνουν σε επίπεδο προγραμματισμού δεν μπορούν να καταγραφούν:
      • Δημιουργία προσαρμοσμένων συναρτήσεων
      • Εμφάνιση προσαρμοσμένων πλαισίων διαλόγου
      • Κάνοντας βρόχους όπως Για το επόμενο , Για κάθε , Do While , κ.λπ.
      • Εκτίμηση συνθηκών. Στην VBA, μπορείτε να χρησιμοποιήσετε την εντολή IF Then Else για να ελέγξετε μια συνθήκη και να εκτελέσετε κάποιον κώδικα αν η συνθήκη είναι αληθής ή έναν άλλο κώδικα αν η συνθήκη είναι ψευδής.
      • Εκτέλεση κώδικα βάσει συμβάντων. Με τη VBA, μπορείτε να χρησιμοποιήσετε πολλά συμβάντα για να εκτελέσετε έναν κώδικα που σχετίζεται με το συγκεκριμένο συμβάν (όπως το άνοιγμα ενός βιβλίου εργασίας, ο επανυπολογισμός ενός φύλλου εργασίας, η αλλαγή επιλογής κ.ο.κ.).
      • Χρήση επιχειρημάτων. Κατά τη συγγραφή μιας μακροεντολής στον επεξεργαστή VBA, μπορείτε να παρέχετε ορίσματα εισόδου για να εκτελέσει μια μακροεντολή μια συγκεκριμένη εργασία. Μια καταγεγραμμένη μακροεντολή δεν μπορεί να έχει ορίσματα, επειδή είναι ανεξάρτητη και δεν συνδέεται με άλλες μακροεντολές.
      • Κατανοώντας τη λογική. Για παράδειγμα, αν καταγράψετε μια μακροεντολή που αντιγράφει συγκεκριμένα κελιά, ας πούμε στο Σύνολο γραμμή, το Excel θα καταγράψει μόνο τις διευθύνσεις των αντιγραμμένων κελιών. Με τη VBA, μπορείτε να κωδικοποιήσετε τη λογική, δηλαδή να αντιγράψετε τις τιμές στο Σύνολο σειρά.

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

    Χρήσιμες συμβουλές για την καταγραφή μακροεντολών στο Excel

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

    Χρήση σχετικών αναφορών για εγγραφή μακροεντολών

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

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

    Για να εγγράψετε μια μακροεντολή με σχετική αναφορά, κάντε κλικ στο κουμπί Χρήση Σχετικές αναφορές στο κουμπί Προγραμματιστής Για να επιστρέψετε στην απόλυτη αναφορά, κάντε ξανά κλικ στο κουμπί για να το απενεργοποιήσετε.

    Για παράδειγμα, αν καταγράφετε τη δημιουργία ενός πίνακα με την προεπιλεγμένη απόλυτη αναφορά, η μακροεντολή σας θα δημιουργεί πάντα τον πίνακα στο ίδιο μέρος (σε αυτή την περίπτωση, Κεφαλίδα στο Α1, Στοιχείο1 στην Α2, Στοιχείο2 στο Α3).

    Sub Absolute_Referencing() Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Header" Range( "A2" ). Select ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ). Select ActiveCell.FormulaR1C1 = "Item2" End Sub

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

    Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Select End Sub

    Σημειώσεις:

    • Όταν χρησιμοποιείτε σχετικές αναφορές, βεβαιωθείτε ότι έχετε επιλέξει το αρχικό κελί πριν ξεκινήσετε την εγγραφή μιας μακροεντολής.
    • Ορισμένες λειτουργίες του Excel, π.χ. η μετατροπή μιας περιοχής σε πίνακα, απαιτούν απόλυτες αναφορές.

    Επιλογή περιοχών με χρήση συντομεύσεων πληκτρολογίου

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

    Ως παράδειγμα, ας καταγράψουμε μια μακροεντολή που ορίζει μια συγκεκριμένη μορφή (δ-μμμ-ιι) για τις ημερομηνίες του παρακάτω πίνακα:

    Για το σκοπό αυτό, καταγράφετε τις ακόλουθες λειτουργίες: πατήστε Ctrl + 1 για να ανοίξετε το Κελιά μορφοποίησης dialog> Date> choose format> OK. Εάν η εγγραφή σας περιλαμβάνει την επιλογή της περιοχής με το ποντίκι ή τα πλήκτρα βέλους, το Excel θα παράγει τον ακόλουθο κώδικα VBA:

    Sub Date_Format() Range( "A2:B4" ). Select Selection.NumberFormat = "d-mmm-yy" End Sub

    Η εκτέλεση της παραπάνω μακροεντολής θα επέλεγε κάθε φορά το εύρος A2:B4. Αν προσθέσετε μερικές ακόμη γραμμές στον πίνακα σας, δεν θα επεξεργαστούν από τη μακροεντολή.

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

    Τοποθετήστε τον κέρσορα στο επάνω αριστερό κελί της περιοχής στόχου (A2 σε αυτό το παράδειγμα), ξεκινήστε την εγγραφή και πατήστε Ctrl + Shift + End . Ως αποτέλεσμα, η πρώτη γραμμή του κώδικα θα μοιάζει με αυτή:

    Range(Selection, ActiveCell.SpecialCells(xlLastCell)). Select

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

    Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τους συνδυασμούς Ctrl + Shift + Βέλη:

    • Ctrl + Shift + Δεξί βέλος για να επιλέξετε όλα τα χρησιμοποιούμενα κελιά προς τα δεξιά, ακολουθούμενο από
    • Ctrl + Shift + Βέλος προς τα κάτω για να επιλέξετε όλα τα χρησιμοποιούμενα κελιά προς τα κάτω.

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

    Range(Selection, Selection. End (xlToRight)). Select Range(Selection, Selection. End (xlDown)). Select

    Καταγράψτε μια μακροεντολή για επιλογή αντί για συγκεκριμένα κελιά

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

    Για το σκοπό αυτό, η VBA παρέχει την Επιλογή αντικείμενο που αναφέρεται στο(α) τρέχον(α) επιλεγμένο(α) κελί(α). Τα περισσότερα πράγματα που μπορούν να γίνουν με μια περιοχή, μπορούν επίσης να γίνουν με την επιλογή. Ποιο πλεονέκτημα σας δίνει αυτό; Σε πολλές περιπτώσεις, δεν χρειάζεται να επιλέξετε τίποτα απολύτως κατά την εγγραφή - απλά γράψτε μια μακροεντολή για το ενεργό κελί. Και στη συνέχεια, επιλέξτε οποιαδήποτε περιοχή θέλετε, εκτελέστε τη μακροεντολή και αυτή θα χειριστεί ολόκληρη την επιλογή.

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

    Sub Percent_Format() Selection.NumberFormat = "0.00%" End Sub

    Σχεδιάστε προσεκτικά τι καταγράφετε

    Το Microsoft Excel Macro Recorder καταγράφει σχεδόν όλη τη δραστηριότητά σας, συμπεριλαμβανομένων των λαθών που κάνετε και διορθώνετε. Για παράδειγμα, αν πατήσετε Ctrl + Z για να αναιρέσετε κάτι, αυτό θα καταγραφεί επίσης. Τελικά, μπορεί να καταλήξετε με πολύ περιττό κώδικα. Για να το αποφύγετε αυτό, είτε επεξεργαστείτε τον κώδικα στον επεξεργαστή VB είτε σταματήστε την εγγραφή, διαγράψτε μια ελλιπή μακροεντολή και ξεκινήστε την εγγραφή εκ νέου.

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

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

    Κρατήστε τις καταγεγραμμένες μακροεντολές σύντομες

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

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

    Ο Michael Brown είναι ένας αφοσιωμένος λάτρης της τεχνολογίας με πάθος για την απλοποίηση πολύπλοκων διαδικασιών χρησιμοποιώντας εργαλεία λογισμικού. Με περισσότερο από μια δεκαετία εμπειρίας στον κλάδο της τεχνολογίας, έχει βελτιώσει τις δεξιότητές του στο Microsoft Excel και το Outlook, καθώς και στα Φύλλα Google και στα Έγγραφα. Το blog του Michael είναι αφιερωμένο στο να μοιράζεται τη γνώση και την τεχνογνωσία του με άλλους, παρέχοντας εύκολες συμβουλές και σεμινάρια για τη βελτίωση της παραγωγικότητας και της αποτελεσματικότητας. Είτε είστε έμπειρος επαγγελματίας είτε αρχάριος, το ιστολόγιο του Michael προσφέρει πολύτιμες πληροφορίες και πρακτικές συμβουλές για να αξιοποιήσετε στο έπακρο αυτά τα βασικά εργαλεία λογισμικού.