Η μακροεντολή του Excel έχει πολλή ισχύ, αλλά έχει τους περιορισμούς της. Όπως αναφέρεται σε άλλο άρθρο, η συσκευή εγγραφής μακροεντολών συχνά καταγράφει περιττό κώδικα και δεν μπορεί να καταγράψει πράγματα όπως η λογική ή οι αλληλεπιδράσεις με άλλα προγράμματα. Μπορεί επίσης να είναι δύσκολο να χρησιμοποιηθεί για μακροχρόνιες μακροεντολές - μπορεί να βρεθείτε σε μια ιστορία με τις ενέργειές σας εκ των προτέρων για να αποφύγετε να κάνετε δαπανηρά λάθη.
Αυτό το άρθρο στοχεύει να σας βοηθήσει να ξεκινήσετε την κωδικοποίηση μακροεντολών από την αρχή στο VBA. Θα μάθετε πού αποθηκεύονται οι μακροεντολές, θα γράψετε μια βασική μακροεντολή και θα μάθετε τα βασικά του προγραμματισμού σε VBA χρησιμοποιώντας μεταβλητές, λογική και βρόχους.
Ξεκινώντας
VBA και ο επεξεργαστής Visual Basic
Η VBA ή Visual Basic για εφαρμογές, είναι η γλώσσα στην οποία είναι γραμμένες οι μακροεντολές. Όλες οι μακροεντολές αποθηκεύονται ως κώδικας VBA, είτε είναι κωδικοποιημένες στο χέρι είτε δημιουργήθηκαν με τη συσκευή εγγραφής μακροεντολών.
Μπορείτε να αποκτήσετε πρόσβαση σε όλο τον κώδικα VBA σε ένα βιβλίο εργασίας χρησιμοποιώντας τον επεξεργαστή Visual Basic. Αυτός είναι ένας ειδικός επεξεργαστής κειμένου και εντοπισμός σφαλμάτων που είναι ενσωματωμένος σε όλες τις εφαρμογές γραφείου, συμπεριλαμβανομένου του Excel. Συνήθως, θα ανοίξετε αυτόν τον επεξεργαστή με το ALT+F11 συντόμευση πληκτρολογίου στο Excel, αλλά μπορείτε επίσης να έχετε πρόσβαση σε αυτήν από το Excel Προγραμματιστής καρτέλα εάν το έχετε ενεργοποιήσει.
Ο Εξερευνητής έργου
ο Project Explorer είναι ένα παράθυρο μέσα στο πρόγραμμα επεξεργασίας VB που σας δείχνει όλα τα στοιχεία που μπορούν να έχουν κώδικα VBA σε αυτά. Εάν δεν βλέπετε αυτό το παράθυρο, πατήστε F5 για να εμφανιστεί ή να επιλεγεί Project Explorer από το Θέα μενού.
Κάνοντας διπλό κλικ σε ένα στοιχείο στο Project Explorer θα εμφανιστεί ο κώδικας για αυτό το στοιχείο. Υπάρχουν διάφοροι τύποι στοιχείων που μπορούν να εμφανιστούν στο Project Explorer:
- Τετράδια εργασίας
- Φύλλα εργασίας
- UserForms
- Ενότητες τάξης
- Ενότητες (οι μακροεντολές αποθηκεύονται σε αυτά τα στοιχεία)
Αν και όλοι αυτοί οι τύποι στοιχείων μπορούν να περιλαμβάνουν κώδικα VBA, η βέλτιστη πρακτική είναι η κωδικοποίηση μακροεντολών σε μονάδες.
Κάνοντας την πρώτη σας μακροεντολή
Χρήση της λίστας μακροεντολών
Η λίστα μακροεντολών σας δείχνει όλες τις μακροεντολές στο βιβλίο εργασίας σας. Από αυτήν τη λίστα μπορείτε να επεξεργαστείτε μια υπάρχουσα μακροεντολή ή να δημιουργήσετε μια νέα.
Για να δημιουργήσετε μια νέα μακροεντολή χρησιμοποιώντας τη λίστα Μακροεντολές:
- Επιλέξτε την καρτέλα Προγραμματιστής και κάντε κλικ Μακροεντολές (ή πατήστε ALT+F8)
- Πληκτρολογήστε ένα νέο όνομα για τη μακροεντολή σας και, στη συνέχεια, κάντε κλικ στην επιλογή "Δημιουργία"
Αφού κάνετε κλικ στο "Δημιουργία", θα εμφανιστεί το πρόγραμμα επεξεργασίας VB, το οποίο εμφανίζει τη μακροεντολή που δημιουργήθηκε πρόσφατα. Το Excel θα δημιουργήσει μια νέα ενότητα για τη μακροεντολή εάν είναι απαραίτητο.
Μη αυτόματα στο VB Editor
Μπορείτε να προσθέσετε μια νέα μακροεντολή μη αυτόματα χωρίς τη λίστα μακροεντολών. Αυτή είναι η καλύτερη επιλογή εάν θέλετε να καθορίσετε τη μονάδα στην οποία είναι αποθηκευμένη η μακροεντολή.
Για να προσθέσετε μια μακροεντολή με μη αυτόματο τρόπο:
- Ανοίξτε το VB Editor (ALT+F11)
- Είτε:
- Προσθέστε μια νέα ενότητα κάνοντας κλικ Εισαγωγή> Ενότητα στο μενού (η μονάδα θα ανοίξει αυτόματα)
-
- OR, κάντε διπλό κλικ σε μια υπάρχουσα μονάδα στο Project Explorer για να την ανοίξετε
- Στη μονάδα, πληκτρολογήστε τον κωδικό για τη νέα σας μακροεντολή
Sub MyMacro () End Sub
Αυτές οι δύο γραμμές υποδεικνύουν την αρχή και το τέλος μιας μακροεντολής που ονομάζεται "MyMacro" (σημειώστε τις παρενθέσεις, που απαιτούνται). Αυτό θα εμφανιστεί στο παράθυρο διαλόγου "Προβολή μακροεντολών" στο Excel και μπορεί να αντιστοιχιστεί σε ένα κουμπί (παρόλο που δεν κάνει τίποτα ακόμα).
Προσθέστε κάποιο κώδικα στη μακροεντολή
Τώρα, ας προσθέσουμε κάποιο κώδικα μεταξύ των γραμμών "Sub" και "End Sub" για να κάνουμε αυτή τη μακροεντολή να κάνει κάτι:
Sub MyMacro () Range ("A1"). Value = "Hello World!" Τέλος υπο
Βασικές δομές κώδικα
Το αντικείμενο εύρους
Το Excel VBA χρησιμοποιεί το αντικείμενο εύρους για να αναπαραστήσει κελιά σε ένα φύλλο εργασίας. Στο παραπάνω παράδειγμα, δημιουργείται ένα αντικείμενο Range με τον κώδικα Εύρος ("A1") για να αποκτήσετε πρόσβαση στην τιμή του κελιού A1.
Τα αντικείμενα εύρους χρησιμοποιούνται κυρίως για τον καθορισμό τιμών κελιών:
Εύρος ("A1"). Τιμή = 1
Εύρος ("A1"). Τιμή = "Πρώτο κελί"
Παρατηρήστε ότι κατά τον καθορισμό των τιμών κελιών ως αριθμών, απλώς εισάγετε τον αριθμό, αλλά κατά την εισαγωγή κειμένου πρέπει να περιβάλλετε το κείμενο με εισαγωγικά.
Τα εύρη μπορούν επίσης να χρησιμοποιηθούν για πρόσβαση σε πολλές ιδιότητες των κελιών, όπως η γραμματοσειρά, τα περιγράμματα, οι τύποι και πολλά άλλα.
Για παράδειγμα, μπορείτε να ορίσετε τη γραμματοσειρά ενός κελιού σε Bold ως εξής:
Εύρος ("A1"). Font.Bold = True
Μπορείτε επίσης να ορίσετε τον τύπο ενός κελιού:
Εύρος ("A1"). Τύπος = "= Άθροισμα (A2: A10)"
Στο Excel, μπορείτε να επιλέξετε ένα μπλοκ κελιών με τον κέρσορα (ας πούμε, από A1 έως D10) και να τα ορίσετε όλα σε έντονα γράμματα. Τα αντικείμενα εύρους μπορούν να έχουν πρόσβαση σε μπλοκ κελιών όπως αυτό:
Εύρος ("A1: D10"). Font.Bold = True
Μπορείτε επίσης να ανατρέξετε σε πολλά κελιά/μπλοκ ταυτόχρονα:
Εύρος ("A1: D10, A12: D12, G1"). Font.Bold = True
Η μορφή για αυτό είναι η ίδια με τη μορφή που θα χρησιμοποιούσατε κατά την επιλογή κελιών για τον τύπο SUM () στο Excel. Κάθε μπλοκ χωρίζεται με κόμμα και τα μπλοκ συμβολίζονται με τα άνω αριστερά και κάτω δεξιά κελιά που χωρίζονται με άνω και κάτω τελεία.
Τέλος, τα αντικείμενα εύρους έχουν ενσωματωμένες μεθόδους για την εκτέλεση κοινών λειτουργιών σε ένα φύλλο εργασίας. Για παράδειγμα, μπορεί να θέλετε να αντιγράψετε ορισμένα δεδομένα από το ένα μέρος στο άλλο. Ιδού ένα παράδειγμα:
Εύρος ("A1: D10"). Εύρος αντιγραφής ("F1"). PasteSpecial xlPasteValues Range ("F1"). PasteSpecial xlPasteFormats
Αυτό αντιγράφει τα κελιά A1: D10 στο πρόχειρο και στη συνέχεια κάνει ένα PasteSpecial () ξεκινώντας από το κελί C1 - όπως ακριβώς κάνατε με μη αυτόματο τρόπο στο Excel. Σημειώστε αυτό το παράδειγμα δείχνει πώς να χρησιμοποιήσετε το PasteSpecial () για να επικολλήσετε μόνο τιμές και μορφές - υπάρχουν παράμετροι για όλες τις επιλογές που θα βλέπατε στο παράθυρο διαλόγου Επικόλληση.
Ακολουθεί ένα παράδειγμα επικόλλησης "Όλα" σε άλλο φύλλο εργασίας:
Εύρος ("A1: D10"). Αντιγραφή φύλλων ("Φύλλο2"). Εύρος ("A1"). Επικόλληση Ειδικού xlPasteAll
Αν Δηλώσεις
Με ένα Αν δήλωση, μπορείτε να κάνετε μια ενότητα κώδικα να εκτελείται μόνο "εάν" μια συγκεκριμένη πρόταση είναι αληθής.
Για παράδειγμα, μπορεί να θέλετε να κάνετε ένα κελί έντονο και να το χρωματίσετε κόκκινο, αλλά μόνο "εάν" η τιμή στο κελί είναι μικρότερη από 100.
If Range ("A4"). Τιμή <100 Τότε Range ("A4"). Font.Bold = True Range ("A4"). Interior.Color = vbRed End If
Η σωστή δομή μιας δήλωσης If είναι η ακόλουθη (οι αγκύλες υποδεικνύουν προαιρετικά στοιχεία):
Αν τότε
[Άλλο Αν Τότε]
[Αλλού]
Τέλος εαν
Μπορείτε να συμπεριλάβετε τόσα Αλλιώς Αν μπλοκ όπως σας αρέσει να δοκιμάζετε πολλαπλές συνθήκες. Μπορείτε επίσης να προσθέσετε ένα Αλλού μπλοκ που εκτελείται μόνο εάν δεν πληρούται καμία από τις άλλες συνθήκες της δήλωσης If.
Ακολουθεί ένα άλλο παράδειγμα με βάση το προηγούμενο, όπου το κελί διαμορφώνεται με διάφορους τρόπους ανάλογα με την τιμή:
If Range ("A4"). Τιμή <100 Τότε Range ("A4"). Font.Bold = True Range ("A4"). Interior.Color = vbRed ElseIf Range ("A4"). Τιμή <200 Στη συνέχεια Range ( "A4"). Font.Bold = False Range ("A4"). Interior.Color = vbYellow Else Range ("A4"). Font.Bold = False Range ("A4"). Interior.Color = vbΠράσινο τέλος αν
Στο παραπάνω παράδειγμα, το κελί είναι μη-τολμηρό στα μπλοκ ElseIf όπου η τιμή δεν είναι κάτω από 100. Μπορείτε φωλιά Εάν δηλώσεις για αποφυγή διπλότυπου κώδικα, όπως αυτό:
If Range ("A4"). Value <100 Then Range ("A4"). Font.Bold = True Range ("A4"). Interior.Color = vbRed Else Range ("A4"). Font.Bold = False ' ξεμπλοκάρισμα της γραμματοσειράς μόνο μία φορά Αν Εύρος ("A4"). Τιμή <200 Στη συνέχεια Εύρος ("Α4"). Interior.Color = vb Κίτρινο άλλο εύρος ("A4"). Interior.Color = vbΠράσινο τέλος αν τερματίσει εάν
Μεταβλητές
ΕΝΑ Μεταβλητός είναι ένα κομμάτι μνήμης που χρησιμοποιείται για την αποθήκευση προσωρινών πληροφοριών ενώ εκτελείται μια μακροεντολή. Συχνά χρησιμοποιούνται σε βρόχους ως επαναλήπτες ή για να κρατούν το αποτέλεσμα μιας λειτουργίας που θέλετε να χρησιμοποιήσετε αρκετές φορές σε μια μακροεντολή.
Ακολουθεί ένα παράδειγμα μιας μεταβλητής και πώς μπορείτε να τη χρησιμοποιήσετε:
Sub ExtractSerialNumber () Dim strSerial As String 'this is the variable variable "" Αναλύστε τον σειριακό αριθμό από το κελί Α4 και τον εκχωρήστε στη μεταβλητή B4 "). Τιμή = strSerial MsgBox strSerial End Sub
Σε αυτό το βασικό παράδειγμα, η μεταβλητή "strSerial" χρησιμοποιείται για την εξαγωγή του σειριακού αριθμού από το κελί Α4 χρησιμοποιώντας τη συνάρτηση Mid () και στη συνέχεια χρησιμοποιείται σε δύο άλλα μέρη.
Ο τυπικός τρόπος για να δηλώνω μια μεταβλητή έχει ως εξής:
Αμυδρός οποιοδήποτε όνομα [Οπως και τύπος]
- οποιοδήποτε όνομα είναι το όνομα που αποφασίζετε να δώσετε στη μεταβλητή σας
- τύπος είναι ο τύπος δεδομένων της μεταβλητής
Το «[As τύπος] "Μέρος μπορεί να παραλειφθεί - αν ναι, η μεταβλητή δηλώνεται ως τύπος παραλλαγής, ο οποίος μπορεί να κρατήσει κάθε είδους δεδομένα. Αν και είναι απόλυτα έγκυροι, οι τύποι παραλλαγών πρέπει να αποφεύγονται, καθώς μπορεί να οδηγήσουν σε απροσδόκητα αποτελέσματα αν δεν είστε προσεκτικοί.
Υπάρχουν κανόνες για ονόματα μεταβλητών. Πρέπει να ξεκινούν είτε με γράμμα είτε με χαρακτήρα υπογράμμισης, δεν μπορούν να έχουν κενά, τελείες, κόμματα, εισαγωγικά ή χαρακτήρες «! @ & $ #".
Ακολουθούν ορισμένα παραδείγματα δηλώσεων μεταβλητών:
Dim strFilename As String «καλό όνομα στυλ - περιγραφικό και χρησιμοποιεί πρόθεμα Dim i As Long» κακό όνομα ύφους - αποδεκτό μόνο για ορισμένους επαναληπτές Dim SalePrice As Double «εντάξει στυλ ονόματος - περιγραφικό, αλλά δεν χρησιμοποιεί πρόθεμα Dim iCounter» εντάξει όνομα - όχι πολύ περιγραφικό, χρησιμοποιεί πρόθεμα, χωρίς τύπο δεδομένων
Όλα αυτά τα παραδείγματα χρησιμοποιούν ελαφρώς διαφορετικά σχήματα ονοματοδοσίας, αλλά όλα είναι έγκυρα. Δεν είναι κακή ιδέα να προθέσετε ένα όνομα μεταβλητής με μια σύντομη μορφή του τύπου δεδομένων της (σύμφωνα με ορισμένα από αυτά τα παραδείγματα), καθώς καθιστά τον κώδικά σας πιο ευανάγνωστο με μια ματιά.
Το VBA περιλαμβάνει πολλά βασικά τύπους δεδομένωνΤο Τα πιο δημοφιλή περιλαμβάνουν:
- Σειρά (χρησιμοποιείται για τη διατήρηση δεδομένων κειμένου)
- Μακρύς (χρησιμοποιείται για τη διατήρηση ακέραιων αριθμών, δηλαδή χωρίς δεκαδικά ψηφία)
- Διπλό (χρησιμοποιείται για τη διατήρηση αριθμών κυμαινόμενου σημείου, δηλ. δεκαδικών ψηφίων)
Μπορείτε να βρείτε μια πλήρη λίστα εγγενών τύπων δεδομένων VBA εδώ: https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/data-type-summary
Μεταβλητές αντικειμένου εύρους
Είναι επίσης δυνατή η δημιουργία μεταβλητών που αναφέρουν αντικείμενα εύρους. Αυτό είναι χρήσιμο εάν θέλετε να αναφερθείτε σε ένα συγκεκριμένο εύρος στον κώδικά σας σε πολλά μέρη - με αυτόν τον τρόπο εάν πρέπει να αλλάξετε το εύρος, πρέπει να το αλλάξετε μόνο σε ένα μέρος.
Όταν δημιουργείτε μια μεταβλητή αντικειμένου εύρους, πρέπει να την "ορίσετε" σε μια παρουσία ενός εύρους. Για παράδειγμα:
Dim rMyRange As Range Set rMyRange = Range ("A1: A10; D1: J10")
Αν αφήσετε τη δήλωση "Set" εκτός κατά την εκχώρηση μιας μεταβλητής εύρους, θα προκύψει σφάλμα.
Βρόχοι
Οι βρόχοι είναι μπλοκ που επαναλαμβάνουν τον κώδικα μέσα τους ορισμένες φορές. Είναι χρήσιμα για τη μείωση του όγκου του κώδικα που πρέπει να γράψετε και σας επιτρέπουν να γράψετε ένα κομμάτι κώδικα που εκτελεί τις ίδιες ενέργειες σε πολλά διαφορετικά συναφή στοιχεία.
Για-Επόμενο
ΕΝΑ Για-Επόμενο Το μπλοκ είναι ένας βρόχος που επαναλαμβάνεται ορισμένες φορές. Χρησιμοποιεί μια μεταβλητή ως επαναληπτης για να μετρήσετε πόσες φορές έχει εκτελεστεί και αυτή η μεταβλητή iterator μπορεί να χρησιμοποιηθεί μέσα στον βρόχο. Αυτό καθιστά τους βρόχους For-Next πολύ χρήσιμους για επανάληψη σε κελιά ή πίνακες.
Ακολουθεί ένα παράδειγμα που περνάει από κελιά στις γραμμές 1 έως 100, στήλη 1 και ορίζει τις τιμές τους στην τιμή της μεταβλητής επαναλήπτη:
Dim i As Long For i = 1 έως 100 κελιά (i, 1). Αξία = i Επόμενο i
Η γραμμή "Για i = 1 έως 100" σημαίνει ότι ο βρόχος ξεκινά από το 1 και τελειώνει μετά το 100. Μπορείτε να ορίσετε τους αριθμούς έναρξης και λήξης που σας αρέσουν. Μπορείτε επίσης να χρησιμοποιήσετε μεταβλητές για αυτούς τους αριθμούς.
Από προεπιλογή, οι βρόχοι For-Next μετρούν κατά 1. Εάν θέλετε να μετρήσετε με διαφορετικό αριθμό, μπορείτε να γράψετε τον βρόχο με ρητή Βήμα ρήτρα:
Για i = 5 έως 100 Βήμα 5
Αυτός ο βρόχος θα ξεκινήσει στο 5 και μετά θα προσθέσει 5 στο ‘i’ κάθε φορά που επαναλαμβάνεται ο βρόχος (έτσι το ‘i’ θα είναι 10 στη δεύτερη επανάληψη, 15 στην τρίτη κ.ο.κ.).
Χρησιμοποιώντας Βήμα, μπορείτε επίσης να κάνετε έναν αριθμό βρόχου αντίστροφα:
Για i = 100 έως 1 Βήμα -1
Μπορείτε επίσης να φωλιά Για τους επόμενους βρόχους. Κάθε μπλοκ απαιτεί τη δική του μεταβλητή για να μετρηθεί, αλλά μπορείτε να τις χρησιμοποιήσετε οπουδήποτε θέλετε. Ακολουθεί ένα παράδειγμα για το πώς είναι χρήσιμο στο Excel VBA:
Dim i As Long, j As Long Για i = 1 έως 100 Για j = 1 έως 100 κελιά (i, j). Αξία = i * j Επόμενο j Επόμενο i
Αυτό σας επιτρέπει να κάνετε βρόχο τόσο σε γραμμές όσο και σε στήλες.
ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αν και επιτρέπεται, ΠΟΤΕ μην τροποποιήσετε τη μεταβλητή iterator μέσα σε ένα μπλοκ For-Next, αφού χρησιμοποιεί αυτόν τον επαναληπτή για να παρακολουθεί τον βρόχο. Η τροποποίηση του επαναλήπτη μπορεί να προκαλέσει άπειρο βρόχο και να κρεμάσει τη μακροεντολή σας. Για παράδειγμα:
Για i = 1 έως 100 i = 1 Επόμενο i
Σε αυτόν τον βρόχο, το «εγώ» δεν θα ξεπεράσει ποτέ το 2 προτού επαναφερθεί στο 1 και ο βρόχος θα επαναληφθεί για πάντα.
Για κάθε
Για κάθε τα μπλοκ είναι πολύ παρόμοια με τα μπλοκ For-Next, εκτός από το ότι δεν χρησιμοποιούν μετρητή για να καθορίσουν πόσες φορές κάνουν βρόχο. Αντ 'αυτού, ένα μπλοκ For-Every λαμβάνει μια "συλλογή" αντικειμένων (όπως μια περιοχή κελιών) και τρέχει όσες φορές υπάρχουν αντικείμενα σε αυτήν τη συλλογή.
Ιδού ένα παράδειγμα:
Dim r As Range Για κάθε r In Range ("A15: J54") Εάν r.Value> 0 Τότε r.Font.Bold = True End If Next r
Παρατηρήστε τη χρήση της μεταβλητής αντικειμένου Range ‘r’. Αυτή είναι η μεταβλητή επαναλήπτη που χρησιμοποιείται στον βρόχο For -Every - κάθε φορά μέσω του βρόχου, το ‘r’ παίρνει μια αναφορά στο επόμενο κελί του εύρους.
Ένα πλεονέκτημα της χρήσης βρόχων For-Every στο Excel VBA είναι ότι μπορείτε να κάνετε βρόχο σε όλα τα κελιά σε μια περιοχή χωρίς βρόχους ένθεσης. Αυτό μπορεί να είναι βολικό αν χρειαστεί να περιηγηθείτε σε όλα τα κελιά σε ένα πολύπλοκο εύρος όπως Εύρος ("A1: D12, J13, M1: Y12").
Ένα μειονέκτημα των βρόχων For-Every είναι ότι δεν έχετε έλεγχο στη σειρά επεξεργασίας των κελιών. Παρόλο στην πράξη Το Excel θα κυκλώσει τα κελιά με τη σειρά, θεωρητικά θα μπορούσε να επεξεργαστεί τα κύτταρα με μια εντελώς τυχαία σειρά. Εάν πρέπει να επεξεργαστείτε κελιά με μια συγκεκριμένη σειρά, θα πρέπει να χρησιμοποιήσετε τους βρόχους For-Next.
Do-Loop
Ενώ τα μπλοκ For-Next χρησιμοποιούν μετρητές για να γνωρίζουν πότε πρέπει να σταματήσουν, Do-Loop μπλοκ εκτελούνται έως ότου ικανοποιηθεί μια συνθήκη. Για να το κάνετε αυτό, χρησιμοποιήστε ένα Μέχρι ρήτρα είτε στην αρχή είτε στο τέλος του μπλοκ, το οποίο ελέγχει την κατάσταση και προκαλεί τη διακοπή του βρόχου όταν πληρείται αυτή η συνθήκη.
Παράδειγμα:
Dim str As String str = "Buffalo" Do Until str = "Buffalo Buffalo Buffalo Buffalo Buffalo Buffalo Buffalo Buffalo" str = str & "" & "Buffalo" Loop Range ("A1"). Value = str
Σε αυτόν τον βρόχο, το "Buffalo" συνδέεται με το "str" κάθε φορά μέσω του βρόχου έως ότου ταιριάζει με την αναμενόμενη πρόταση. Σε αυτήν την περίπτωση, ο έλεγχος εκτελείται στην αρχή του βρόχου - εάν το "str" ήταν ήδη η αναμενόμενη πρόταση (η οποία δεν συμβαίνει επειδή δεν την ξεκινήσαμε έτσι, αλλά αν) ο βρόχος δεν θα εκτελεστεί καν Ε
Μπορείτε να κάνετε τον βρόχο να τρέξει τουλάχιστον μία φορά μετακινώντας τη ρήτρα Μέχρι στο τέλος, όπως αυτό:
Κάντε str = str & "" & "Buffalo" Loop Μέχρι str = "Buffalo Buffalo Buffalo Buffalo Buffalo Buffalo Buffalo Buffalo"
Μπορείτε να χρησιμοποιήσετε όποια έκδοση έχει νόημα στη μακροεντολή σας.
ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μπορείτε να προκαλέσετε έναν άπειρο βρόχο με ένα μπλοκ Do-Loop εάν η συνθήκη Μέχρι να μην ικανοποιηθεί ποτέ. Γράφετε πάντα τον κωδικό σας έτσι ώστε να πληρούται σίγουρα η συνθήκη έως ότου χρησιμοποιείτε αυτόν τον τύπο βρόχου.
Τι έπεται?
Αφού κατανοήσετε τα βασικά, γιατί να μην δοκιμάσετε να μάθετε μερικές πιο προηγμένες τεχνικές; Το σεμινάριό μας στη διεύθυνση https://easyexcel.net/excel/learn-vba-tutorial/ θα βασιστεί σε όλα όσα μάθατε εδώ και θα επεκτείνει τις δεξιότητές σας με Εκδηλώσεις, UserForms, βελτιστοποίηση κώδικα και πολλά άλλα!
