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

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

Anonim

Ανοίξτε το Excel και το VBE (Visual Basic Editor). Αν δεν έχει αλλάξει, το παράθυρο VBE περιέχει το Project Explorer παράθυρο και το Ιδιότητες παράθυρο (μπορείτε να έχετε πρόσβαση από το Θέα μενού).

Project Explorer: Λειτουργεί σαν διαχειριστής αρχείων. Σας βοηθά να περιηγηθείτε στον κώδικα του βιβλίου εργασίας σας.

Παράθυρο ιδιοτήτων: Εμφανίζει τις ιδιότητες του τρέχοντος ενεργού αντικειμένου (π. Φύλλο 1) του τρέχοντος βιβλίου εργασίας (π.χ.Βιβλίο 1).

Σε αυτό το άρθρο θα μάθουμε πόσο εύκολη η εγγραφή μακροεντολών στο Excel.

Άσκηση 1: Εγγραφή μακροεντολής.

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

1. Σε ένα κενό φύλλο εργασίας σε ένα νέο βιβλίο εργασίας, επιλέξτε κελί C10

2. Ξεκινήστε το Macro Recorder με επιλογή αποθήκευσης μακροεντολής Αυτό το τετράδιο εργασίαςΤο Σε αυτό το σημείο το VBE δημιουργεί ένα νέο Ενότητες ντοσιέ. Είναι πολύ ασφαλές να πάτε να το δείτε - οι ενέργειές σας δεν θα καταγραφούν. Κάντε κλικ στο [+] δίπλα στο φάκελο και δείτε ότι το VBE έχει τοποθετήσει μια μονάδα στο φάκελο και το έχει ονομάσει Ενότητα 1Το Κάντε διπλό κλικ στο εικονίδιο της μονάδας για να ανοίξετε το παράθυρο κώδικα. Επιστροφή στο Excel.

3. Βεβαιωθείτε ότι το Σχετική αναφορά κουμπί στο Διακοπή εγγραφής η γραμμή εργαλείων ΔΕΝ πιέζεται.

4. Επιλέξτε κελί Β5 και σταματήστε τη συσκευή εγγραφής.

5. Μεταβείτε στο VBE και κοιτάξτε τον κωδικό:

Εύρος ("B5"). Επιλέξτε

6. Τώρα καταγράψτε μια άλλη μακροεντολή, ακριβώς με τον ίδιο τρόπο, αλλά αυτή τη φορά με το Σχετική αναφορά πατημένο το κουμπί.

7. Μεταβείτε στο VBE και κοιτάξτε τον κωδικό:

ActiveCell.Offset (-5, -1). Εύρος ("A1"). Επιλέξτε

8. Τώρα καταγράψτε μια άλλη μακροεντολή, αλλά αντί να επιλέξετε το κελί Β5, επιλέξτε ένα μπλοκ κελιών 3x3 που ξεκινούν από το Β5 (επιλέξτε κελιά Β5: F7)

9. Μεταβείτε στο VBE και κοιτάξτε τον κωδικό:

ActiveCell.Offset (-5, -1). Range ("A1: B3"). Επιλέξτε

10. Αναπαράγετε τις μακροεντολές, αφού πρώτα έχετε επιλέξει διαφορετικό κελί από το C10 (για Macro2 και Macro3 το αρχικό κελί πρέπει να βρίσκεται στη σειρά 6 ή παρακάτω - δείτε το βήμα 11 παρακάτω)

Macro1 - μετακινεί πάντα την επιλογή στο Β5
Macro2 - μετακινεί την επιλογή σε ένα κελί 5 σειρές επάνω και 1 στήλη στα αριστερά του επιλεγμένου κελιού.
Macro3 - επιλέγει πάντα ένα μπλοκ έξι κελιών ξεκινώντας 5 σειρές προς τα πάνω και 1 στήλη στα αριστερά του επιλεγμένου κελιού.

11. Εκτελέστε το Macro2 αλλά επιβάλλετε ένα σφάλμα επιλέγοντας ένα κελί στη σειρά 5 ή παραπάνω. Η μακροεντολή προσπαθεί να επιλέξει ένα ανύπαρκτο κελί επειδή ο κώδικας του λέει να επιλέξει ένα κελί 5 σειρές πάνω από το σημείο εκκίνησης και αυτό βρίσκεται στην κορυφή του φύλλου. Τύπος Εντοπισμός σφαλμάτων να μεταφερθεί στο τμήμα της μακροεντολής που προκάλεσε το πρόβλημα.

ΣΗΜΕΙΩΣΗ: Όταν το VBE βρίσκεται σε λειτουργία εντοπισμού σφαλμάτων, η γραμμή κώδικα που προκάλεσε το πρόβλημα επισημαίνεται με κίτρινο χρώμα. Πρέπει να "επαναφέρετε" τη μακροεντολή προτού προχωρήσετε. Κάντε κλικ στο Επαναφορά κουμπί στη γραμμή εργαλείων VBE ή μεταβείτε στο Εκτέλεση> ΕπαναφοράΤο Η κίτρινη επισήμανση εξαφανίζεται και το VBE βγαίνει από τη λειτουργία εντοπισμού σφαλμάτων.

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

Στο Σφάλμα Συνέχιση Επόμενο

… Ακριβώς πάνω από την πρώτη γραμμή της μακροεντολής (κάτω από τη γραμμή Sub Macro1 ()

13. Τρέξτε Macro2 όπως πριν, ξεκινώντας πολύ ψηλά στο φύλλο. Αυτή τη φορά η γραμμή που πληκτρολογήσατε λέει στο Excel να αγνοήσει τη γραμμή κώδικα που δεν μπορεί να εκτελέσει. Δεν υπάρχει μήνυμα σφάλματος και η μακροεντολή εξέρχεται έχοντας κάνει ό, τι μπορεί. Χρησιμοποιήστε αυτήν τη μέθοδο χειρισμού σφαλμάτων με προσοχή. Αυτή είναι μια πολύ απλή μακροεντολή. Μια πιο σύνθετη μακροεντολή πιθανότατα δεν θα λειτουργούσε όπως αναμενόταν εάν τα λάθη απλώς αγνοούνταν. Επίσης, ο χρήστης δεν έχει ιδέα ότι κάτι δεν πάει καλά.

14. Τροποποιήστε τον κωδικό του Macro2 για να συμπεριλάβετε έναν πιο εξελιγμένο χειριστή σφαλμάτων ως εξής:

Υπο Macro2 ()

Στο Error GoTo ErrorHandler

ActiveCell.Offset (-5, -1). Εύρος ("A1"). Επιλέξτε

Έξοδος Sub

ErrorHandler:

MsgBox "Πρέπει να ξεκινήσετε κάτω από τη σειρά 5"

Τέλος υπο

15. Αυτή τη φορά παρουσιάζεται στο χρήστη ένα παράθυρο διαλόγου όταν κάτι δεν πάει καλά. Εάν δεν υπάρχει σφάλμα, η γραμμή Exit Sub προκαλεί τη μακροεντολή να τελειώσει αφού έχει κάνει τη δουλειά της - διαφορετικά ο χρήστης θα έβλεπε το μήνυμα ακόμη και αν δεν υπήρχε σφάλμα.

Βελτίωση καταγεγραμμένων μακροεντολών

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

Άσκηση 2: Βελτίωση σε καταγεγραμμένες μακροεντολές

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

1. Επιλέξτε οποιοδήποτε κελί ή μπλοκ κελιών.

2. Εκκινήστε τη συσκευή εγγραφής μακροεντολών και καλέστε τη μακροεντολή FormatCells. Η ρύθμιση των σχετικών αναφορών δεν θα είναι σχετική.

3. Πηγαίνετε στο Μορφή> Κελιά> Γραμματοσειρά και επιλέξτε Times New Roman και το κόκκινο.
Παω σε Μοτίβα και επιλέξτε Κίτρινος.
Παω σε Ευθυγραμμία και επιλέξτε Οριζόντια, Κέντρο
Παω σε Αριθμός και επιλέξτε Νόμισμα.

4. Κάντε κλικ Εντάξει και σταματήστε τη συσκευή εγγραφής.

5. Κάντε κλικ στο Ξεκάνω κουμπί (ή Ctrl+Z) για να αναιρέσετε τις αλλαγές σας στο φύλλο εργασίας.

6. Επιλέξτε ένα μπλοκ κελιών και εκτελέστε το FormatCells μακροεντολή Σημειώστε ότι δεν μπορεί να αναιρεθεί! Πληκτρολογήστε τα κελιά για να ελέγξετε το αποτέλεσμα της μορφοποίησης.

7. Κοιτάξτε τον κωδικό:

Sub FormatSelection ()

Selection.NumberFormat = "$#, ## 0,00"

Με Επιλογή

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = Λάθος

. Προσανατολισμός = 0

.ShrinkToFit = Λάθος

.MergeCells = Λάθος

Τέλος με

Με Selection.Font

.Name = "Times New Roman"

.FontStyle = "Κανονικό"

.Μέγεθος = 10

.Strikethrough = Λάθος

.Superscript = Λάθος

.Επιγραφή = Λάθος

.OutlineFont = Λάθος

.Σκιά = Λάθος

.Underline = xlUnderlineStyleNone

.ColorIndex = 3

Τέλος με

Με επιλογή. Εσωτερικό

.ColorIndex = 6

.Μοτίβο = xlΣτερεό

.PatternColorIndex = xlΑυτόματο

Τέλος με

Τέλος υπο

Αλλάξτε τη γραμματοσειρά σε Times New Roman
Αλλάξτε το χρώμα γραμματοσειράς σε το κόκκινο
Αλλάξτε το χρώμα συμπλήρωσης σε Κίτρινος
Κάντε κλικ στο Κέντρο κουμπί
Κάντε κλικ στο Νόμισμα κουμπί

13. Κοιτάξτε τον κωδικό. Παίρνετε ακόμα πολλά πράγματα που δεν θέλετε απαραίτητα. Το Excel καταγράφει όλα τα Προκαθορισμένο Ρυθμίσεις. Τα περισσότερα από αυτά είναι ασφαλή για διαγραφή.

14. Πειραματιστείτε με την άμεση επεξεργασία στον κώδικα για να αλλάξετε χρώματα, γραμματοσειρά, μορφή αριθμού κ.λπ.

Άσκηση 3: Παρακολουθήστε μια μακροεντολή που καταγράφεται

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

1. Ανοίξτε το αρχείο VBA01.xls.

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

2. Πλακάρετε τα παράθυρα Excel και VBE (κάθετα) έτσι ώστε να είναι δίπλα-δίπλα.

3. Επιλέξτε οποιοδήποτε κελί μέσα στα δεδομένα. Εάν πρόκειται για ένα κενό κελί, πρέπει να είναι δίπλα σε ένα κελί που περιέχει δεδομένα.

4. Εκκινήστε τη συσκευή εγγραφής μακροεντολών και καλέστε τη μακροεντολή FillEmptyCellsΤο Ρυθμίστε την εγγραφή Σχετικές αναφορές.

5. Στο παράθυρο VBE βρείτε και κάντε διπλό κλικ στη λειτουργική μονάδα (Module1) για το τρέχον βιβλίο εργασίας για να ανοίξετε το παράθυρο επεξεργασίας και, στη συνέχεια, απενεργοποιήστε το παράθυρο Project Explorer και το παράθυρο Ιδιότητες (μόνο για να δημιουργήσετε χώρο).

6. Καταγράψτε τη νέα μακροεντολή ως εξής:

Βήμα 1. Ctrl+* (για να επιλέξετε την τρέχουσα περιοχή)
Βήμα 2. Επεξεργασία> Μετάβαση> Ειδικά> Κενά> OK (για να επιλέξετε όλα τα κενά κελιά στην τρέχουσα περιοχή)
Βήμα 3. Πληκτρολογήστε = [Πάνω βέλος] στη συνέχεια πιέστε Ctrl+Enter (για να τοποθετήσετε την πληκτρολόγηση σε όλα τα επιλεγμένα κελιά)
Βήμα 4. Ctrl+* (για να επιλέξετε ξανά την τρέχουσα περιοχή)
Βήμα 5. Ctrl+C (για να αντιγράψετε την επιλογή - οποιαδήποτε μέθοδος θα κάνει)
Βήμα 6. Επεξεργασία> Επικόλληση ειδικού> Τιμές> ΟΚ (για να επικολλήσετε ξανά τα δεδομένα στο ίδιο μέρος, αλλά απορρίπτοντας τους τύπους)
Βήμα 7. Esc (για να βγείτε από τη λειτουργία αντιγραφής)
Βήμα 8. Διακοπή εγγραφής.

7. Κοιτάξτε τον κωδικό:

Sub FillEmptyCells ()

Selection.CurrentRegion.Select

Επιλογή. Ειδικά κελιά (xlCellTypeBlanks). Επιλέξτε

Selection.FormulaR1C1 = "= R [-1] C"

Selection.CurrentRegion.Select

Επιλογή. Αντιγραφή

Selection.PasteSpecial Paste: = xlValues, Λειτουργία: = xlNone, SkipBlanks: = _

Λάθος, Μεταφορά: = Λάθος

Application.CutCopyMode = Λάθος

Τέλος υπο

8. Σημειώστε τη χρήση του διαστήματος και υπογράμμισης "_" για να υποδηλώσετε τη διάσπαση μιας μεμονωμένης γραμμής κώδικα σε μια νέα γραμμή. Χωρίς αυτό το Excel θα αντιμετώπιζε τον κώδικα ως δύο ξεχωριστές δηλώσεις.

9. Επειδή αυτή η μακροεντολή έχει καταγραφεί με καλά μελετημένες εντολές, υπάρχει ελάχιστος περιττός κώδικας. Στο Επικόλληση Ειδικού όλα μετά τη λέξη "xlValues" μπορούν να διαγραφούν.

10. Δοκιμάστε τη μακροεντολή. Στη συνέχεια, χρησιμοποιήστε το εργαλείο AutoFilter και σημειώστε τη διαφορά.