4 λάθη που πρέπει να αποφύγετε κατά τον προγραμματισμό μακροεντολών Excel με VBA

4 λάθη που πρέπει να αποφύγετε κατά τον προγραμματισμό μακροεντολών Excel με VBA

Microsoft Excel είναι ήδη ένα ικανό εργαλείο ανάλυσης δεδομένων, αλλά με τη δυνατότητα αυτοματοποίησης επαναλαμβανόμενων εργασιών με μακροεντολές γράφοντας απλό κώδικα στη Visual Basic for Applications (VBA) είναι πολύ πιο ισχυρό. Ωστόσο, αν χρησιμοποιηθεί εσφαλμένα, το VBA μπορεί να προκαλέσει προβλήματα.





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





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





Ξεκινώντας με το VBA

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

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



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

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





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

1. Φρικτά ονόματα μεταβλητών

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





windows 10 πώς να μεταβείτε στο bios

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

  • Κάντε τα όσο πιο σύντομα γίνεται.
  • Κάντε τα όσο το δυνατόν περιγραφικότερα.
  • Προλογίστε τα με τον μεταβλητό τύπο (boolean, integer, etc ...).

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

Όταν θέλετε να χρησιμοποιήσετε τις μεταβλητές μέσα σε μια συνάρτηση μέσα στη λειτουργική μονάδα ή το αντικείμενο (θα το εξηγήσω παρακάτω), τότε πρέπει να το δηλώσετε ως «δημόσια» μεταβλητή, προδιαγράφοντας τη δήλωση με Δημόσιο Το Διαφορετικά, οι μεταβλητές δηλώνονται προδιαγράφοντάς τις με τη λέξη Κανένας Το

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

Επίσης, φροντίστε να ονομάσετε τα φύλλα στο βιβλίο εργασίας του Excel.

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

2. Breaking Αντί Looping

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

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

Οι νέοι προγραμματιστές συχνά θέλουν να ξεφύγουν από ένα βρόχο (VBA For loops ή VBA Do while loops) αμέσως όταν ισχύει μια συγκεκριμένη συνθήκη.

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

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

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

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

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

Αυτό επιτρέπει μια λογική ροή του κώδικα σας. Τώρα ο κώδικας θα περάσει και θα σταματήσει μόλις φτάσει το 6. Δεν χρειάζεται να συμπεριλάβετε αμήχανες εντολές EXIT ή BREAK στο μέσο του βρόχου.

3. Μη χρήση συστοιχιών

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

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

Εάν δεν έχετε χρησιμοποιήσει ποτέ έναν πίνακα στο παρελθόν, μην φοβάστε. Φανταστείτε έναν πίνακα ως δίσκο παγοκύβων με έναν ορισμένο αριθμό «κύβων» όπου μπορείτε να βάλετε πληροφορίες. Οι κύβοι αριθμούνται από το 1 έως το 12 και έτσι «βάζετε» δεδομένα σε αυτά.

Μπορείτε εύκολα να ορίσετε έναν πίνακα πληκτρολογώντας Dim arrMyArray (12) ως ακέραιος Το

που μπορώ να εκτυπώσω δωρεάν

Αυτό δημιουργεί έναν «δίσκο» με 12 διαθέσιμες θέσεις για να γεμίσετε.

Δείτε πώς μπορεί να μοιάζει ένας κώδικας βρόχου γραμμής χωρίς πίνακα:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

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

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

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

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

ο x-1 για να δείξετε το στοιχείο του πίνακα είναι απαραίτητο μόνο επειδή ο βρόχος For ξεκινά από 1. Τα στοιχεία του πίνακα πρέπει να ξεκινούν από το 0.

Τώρα που έχετε τον πίνακα είναι πολύ απλή η επεξεργασία των περιεχομένων.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

Αυτό το παράδειγμα περνάει από ολόκληρο τον πίνακα γραμμών ( UBound σας δίνει τον αριθμό των δεδομένων δεδομένων στον πίνακα), κάνει τον υπολογισμό της θερμοκρασίας και, στη συνέχεια, τον τοποθετεί σε έναν άλλο πίνακα που ονομάζεται arrMyTemps Το

4. Χρήση πάρα πολλών αναφορών

Είτε προγραμματίζετε σε πλήρη Visual Basic είτε σε VBA, θα πρέπει να συμπεριλάβετε «αναφορές» για πρόσβαση σε ορισμένες λειτουργίες.

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

Αυτό που θα βρείτε σε αυτό το παράθυρο είναι όλες οι τρέχουσες επιλεγμένες αναφορές για το τρέχον έργο σας VBA.

Θα πρέπει να ελέγξετε αυτήν τη λίστα επειδή οι περιττές αναφορές μπορούν να σπαταλήσουν τους πόρους του συστήματος. Εάν δεν χρησιμοποιείτε κανένα χειρισμό αρχείων XML, τότε γιατί να διατηρήσετε επιλεγμένο το Microsoft XML; Εάν δεν επικοινωνείτε με μια βάση δεδομένων, καταργήστε το Microsoft DAO κ.λπ.

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

Μόλις επιλεγεί, θα δείτε όλα τα αντικείμενα και τις διαθέσιμες λειτουργίες, στις οποίες μπορείτε να κάνετε κλικ για να μάθετε περισσότερα.

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

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

πώς να εγκαταστήσετε το mac os στο vmware

Προγραμματισμός σε Excel VBA

Η όλη ιδέα της πραγματικής γραφής κώδικα στο Excel τρομάζει πολλούς ανθρώπους, αλλά αυτός ο φόβος δεν είναι πραγματικά απαραίτητος. Η Visual Basic for Applications είναι μια πολύ απλή γλώσσα για εκμάθηση και αν ακολουθήσετε τις βασικές κοινές πρακτικές που αναφέρθηκαν παραπάνω, θα διασφαλίσετε ότι ο κωδικός σας είναι καθαρός, αποτελεσματικός και κατανοητός.

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

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Αξίζει την αναβάθμιση σε Windows 11;

Τα Windows έχουν επανασχεδιαστεί. Είναι όμως αυτό αρκετό για να σας πείσει να μεταβείτε από τα Windows 10 στα Windows 11;

Διαβάστε Επόμενο
Σχετικά θέματα
  • Παραγωγικότητα
  • Προγραμματισμός
  • Προγραμματισμός
  • Προγραμματισμός Visual Basic
  • Microsoft Excel
Σχετικά με τον Συγγραφέα Άντονι Γκραντ(Δημοσιεύθηκαν 40 άρθρα)

Ο Anthony Grant είναι ένας ανεξάρτητος συγγραφέας που καλύπτει προγραμματισμό και λογισμικό. Είναι ειδικός στην Πληροφορική που ασχολείται με προγραμματισμό, Excel, λογισμικό και τεχνολογία.

Περισσότερα από τον Anthony Grant

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή