Το μπλοκ With - End With στο VBA χρησιμοποιείται για να πει στην VBA ότι πρόκειται να χρησιμοποιήσουμε το δεδομένο αντικείμενο και θα πρέπει να λάβει υπόψη τις ιδιότητες του δεδομένου αντικειμένου μόνο όταν χρησιμοποιήσουμε τελεστή τελείας. Θα δούμε παραδείγματα αργότερα σε αυτό το άρθρο.
Σύνταξη με - Τέλος με αποκλεισμό
Με [Αντικείμενο] 'Κωδικός για αλλαγή ή χρήση [Αντικείμενο]'- '- Τέλος με
Τώρα που γνωρίζουμε τη σύνταξη του με - Τέλος με μπλοκ, ας δούμε τη χρήση του.
Παράδειγμα με - Τέλος με μπλοκ
Ας πούμε ότι θέλω να κάνω αρκετές αλλαγές στο εύρος A2: A10. Θέλω να επιλέξω αυτό το εύρος, να αλλάξω χρώματα πλήρωσης, στυλ γραμματοσειράς κλπ. Πώς θα το κάνω γενικά; Μάλλον έτσι:
Υπό δοκιμή () Εύρος ("A1: A10"). Επιλέξτε Εύρος ("A1: A10"). Interior.ColorIndex = 8 Range ("A1: A10"). Font.Name = "Algerian" Range ("A1: A10 ") .Font.ColorIndex = 12 Range (" A1: A10 "). Font.Underline = xlUnderlineStyleDouble Range (" A1: A10 "). Εύρος αντιγραφής (" B1: B10 ") Range (" A1: A10 "). Clear Τέλος υπο
Τα παραπάνω επιλέγουν εύρος A1: A10. Αλλάζει το εσωτερικό χρώμα της περιοχής σε ευρετήριο χρωμάτων 8. Αλλάζει τη γραμματοσειρά σε Αλγερινή. Αλλάζει το χρώμα της γραμματοσειράς σε ευρετήριο χρωμάτων 12. Υπογραμμίζει το κείμενο στην περιοχή με διπλές υπογραμμίσεις. Στη συνέχεια, αντιγράφει το εύρος A1: A10 στο εύρος B1: B10 του ίδιου φύλλου. Επιτέλους καθαρίζει το εύρος A1: A10.
Μπορείτε να παρατηρήσετε ότι για να κάνουμε κάθε λειτουργία με εύρος A1: A10, πρέπει να το γράφουμε κάθε φορά. Στη συνέχεια, ο τελεστής τελείας αποκτά πρόσβαση στις ιδιότητές του. Αυτό μειώνει την ταχύτητα επεξεργασίας και αυξάνει την επιβάρυνση των προγραμματιστών VBA. Η εναλλακτική λύση για να γίνει αυτό είναι να χρησιμοποιήσετε ένα μπλοκ Με: Ο παρακάτω κώδικας κάνει το ίδιο με τον παραπάνω κώδικα αλλά πιο γρήγορα.
Sub test () With Range ("A1: A10") .Επιλέξτε .Interior.ColorIndex = 8 .Font.Name = "Algerian" .Font.ColorIndex = 12 .Font.Underline = xlUnderlineStyleDouble .Copy Range ("B1: B10" ). Clear End With End Sub
Ας δούμε ένα άλλο παράδειγμα.
Εάν έχετε δημιουργήσει ένα αντικείμενο του Outlook Mail, μπορείτε να το χρησιμοποιήσετε για να προετοιμάσετε όλες τις ιδιότητές του και να χρησιμοποιήσετε μεθόδους.
Set outMail = Outlook.Application.CreateItem (0) With outMail .To = "abcd.mail.com" 'Υποχρεωτικό. Εδώ ορίζετε το αναγνωριστικό αλληλογραφίας προορισμού… cc = "cc.mail.com" 'προαιρετικό. Cc id mail αν θέλετε… BCC = "bcc.mail.com" 'προαιρετικό. Bcc id id αν θέλετε… Θέμα = subj 'θα πρέπει να έχει. Το μασάζ στο σώμα αλληλογραφίας … Σώμα = msg 'προαιρετικό. Το μασάζ στο σώμα αλληλογραφίας… Συνημμένα.Προσθήκη "C: /exceltip.com \ test.xlsx" .Αποστολή Τέλους με
Πώς λειτουργεί;
Λοιπόν, όταν γράφουμε με εύρος ("A1: A10"), το vba κλειδώνει την αναφορά του στο εύρος αντικειμένων ("A1: A10"). Έτσι, κάθε φορά που γράφουμε τελεστή dot (.), Το VBA παραθέτει όλα τα μέλη αυτής της κατηγορίας εύρους που θα επηρεάσουν μόνο το εύρος αντικειμένων ("A1: A10") ή οποιοδήποτε αντικείμενο που αναφέρατε. Το κλείδωμα αναφοράς απελευθερώνεται όταν η VBA διαβάσει τη δήλωση Τέλος με.
Φωλιάζει με μπλοκ
Μπορούμε να έχουμε ένα μπλοκ μέσα σε ένα άλλο μπλοκ. Στο παραπάνω παράδειγμα χρησιμοποιήσαμε ένα αντικείμενο περιοχής για να το επιλέξουμε. Στη συνέχεια χρησιμοποιήσαμε το Range.Font αρκετές φορές για να δουλέψουμε με γραμματοσειρές. Αυτό είναι ξανά επαναλαμβανόμενο. Ο παραπάνω κώδικας μπορεί επίσης να γραφτεί ως εξής:
Sub test () With Range ("A1: A10") .Επιλέξτε .Interior.ColorIndex = 8 'Χρήση άλλου With εντός ενός With Block With .Font .Name = "Algerian" .ColorIndex = 12. Underline = xlUnderlineStyleDouble End With .Copy Εύρος ("B1: B10"). Clear End With End Sub
Το εσωτερικό με μπλοκ πρέπει να αναφέρεται σε ένα αντικείμενο που είναι ένα υπο -μέλος του εξωτερικού αντικειμένου. Μπορούμε να αναφερθούμε στο εξωτερικό με ως αντικείμενο με και στο εσωτερικό με ως παιδί με. Όταν ξεκινάτε εσωτερικά με, το αντικείμενο πρέπει να γραφτεί με τον προηγούμενο τελεστή τελείας.
Όταν είστε παιδί, δεν μπορείτε να έχετε πρόσβαση σε συγκεκριμένες ιδιότητες γονέα. Για παράδειγμα, ο παρακάτω κωδικός είναι λάθος.
Sub test () With Range ("A1: A10") .Επιλέξτε .Interior.ColorIndex = 8 'Χρήση άλλου With εντός ενός With Block With .Font .Name = "Algerian" .ColorIndex = 12. Underline = xlUnderlineStyleDouble' Ο παρακάτω κωδικός θα δημιουργήσει σφάλμα ως αντιγραφή και οι μέθοδοι διαγραφής δεν ανήκουν στην κατηγορία γραμματοσειρών… Εύρος αντιγραφής ("B1: B10"). Διαγραφή τέλους με τέλος με τέλος υπο
Πλήρως πιστοποιημένο με μπλοκ
Εάν θέλω να κάνω κάποιες αλλαγές με τη γραμματοσειρά της περιοχής A1: A10 του φύλλου2 στον κώδικα που περιέχει το βιβλίο εργασίας, τότε θα πρέπει να χρησιμοποιήσουμε ένα πλήρως εξειδικευμένο μπλοκ.
Οι παρακάτω δύο κωδικοί θα λειτουργούν το ίδιο.
Sub test2 () With ThisWorkbook With .Sheets ("Sheet2") With .Range ("A1: A10") With .Font .Name = "Algerian" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble End With End With End With End With End Υπο
'Πλήρως προσόν με block Sub test3 () With ThisWorkbook.Sheets ("Shee2"). Range ("A1: A10"). Font .Name = "Algerian" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble End With End Sub
Μπορείτε να δείτε τη διαφορά. Έτσι, όταν γνωρίζετε ότι πρόκειται να χρησιμοποιήσετε πολλαπλές μεθόδους και ιδιότητες από ένα αντικείμενο, δώστε ένα εξειδικευμένο όνομα στην αρχή. Εάν χρησιμοποιείτε παιδικά αντικείμενα, χρησιμοποιήστε την προηγούμενη προσέγγιση. Οι έμπειροι προγραμματιστές χρησιμοποιούν και τις δύο μεθόδους σε κατάλληλες καταστάσεις.
Λοιπόν, ναι, έτσι χρησιμοποιούμε το μπλοκ With - End With στο VBA. Ελπίζω να ήμουν αρκετά επεξηγηματικός και αυτό το άρθρο σας βοήθησε να καταλάβετε την έννοια του With - End With. Εάν έχετε αμφιβολίες σχετικά με αυτό το άρθρο ή οποιοδήποτε άλλο θέμα, ρωτήστε με στην παρακάτω ενότητα σχολίων. Θα χαρώ να σας βοηθήσω.
Μεταβλητές VBA στο Excel| Το VBA σημαίνει Visual Basic for Applications. Είναι μια γλώσσα προγραμματισμού από τη Microsoft. Χρησιμοποιείται με εφαρμογές του Microsoft Office, όπως MSExcel, MS-Word και MS-Access, ενώ οι μεταβλητές VBA είναι συγκεκριμένες λέξεις-κλειδιά.
Πεδίο μεταβλητής Excel VBA| Σε όλες τις γλώσσες προγραμματισμού, έχουμε προσδιοριστές μεταβλητής πρόσβασης που ορίζουν από πού μπορεί να έχει πρόσβαση μια καθορισμένη μεταβλητή. Το Excel VBA δεν αποτελεί εξαίρεση. Το VBA έχει επίσης προσδιοριστικά πεδίου.
Επιχειρήματα ByRef και ByVal | Όταν ένα όρισμα μεταβιβάζεται ως όρισμα ByRef σε διαφορετικό υποσύστημα ή συνάρτηση, αποστέλλεται η αναφορά της πραγματικής μεταβλητής. Τυχόν αλλαγές που γίνονται στο αντίγραφο της μεταβλητής, θα αντικατοπτρίζονται στο αρχικό όρισμα.
Διαγράψτε φύλλα χωρίς προτροπές επιβεβαίωσης χρησιμοποιώντας VBA στο Microsoft Excel | Δεδομένου ότι διαγράφετε φύλλα χρησιμοποιώντας VBA, γνωρίζετε τι κάνετε. Θα θέλατε να πείτε στο Excel να μην εμφανίζει αυτήν την προειδοποίηση και να διαγράψει το καταραμένο φύλλο.
Προσθήκη και αποθήκευση νέου βιβλίου εργασίας χρησιμοποιώντας το VBA στο Microsoft Excel 2016| Σε αυτόν τον κώδικα, δημιουργήσαμε πρώτα μια αναφορά σε ένα αντικείμενο βιβλίου εργασίας. Και στη συνέχεια το αρχικοποιήσαμε με ένα νέο αντικείμενο βιβλίου εργασίας. Το πλεονέκτημα αυτής της προσέγγισης είναι ότι μπορείτε να κάνετε εύκολα λειτουργίες σε αυτό το νέο βιβλίο εργασίας. Όπως αποθήκευση, κλείσιμο, διαγραφή κλπ
Εμφάνιση μηνύματος στη γραμμή κατάστασης του Excel VBA| Η γραμμή κατάστασης στο excel μπορεί να χρησιμοποιηθεί ως οθόνη κώδικα. Όταν ο κώδικας VBA είναι μεγάλος και εκτελείτε πολλές εργασίες χρησιμοποιώντας το VBA, συχνά απενεργοποιείτε την ενημέρωση της οθόνης, έτσι ώστε να μην βλέπετε αυτήν την οθόνη να τρεμοπαίζει.
Απενεργοποιήστε τα μηνύματα προειδοποίησης χρησιμοποιώντας το VBA στο Microsoft Excel 2016| Αυτός ο κώδικας όχι μόνο απενεργοποιεί τις ειδοποιήσεις VBA αλλά επίσης αυξάνει την αποδοτικότητα χρόνου του κώδικα. Ας δούμε πώς.
Δημοφιλή άρθρα:
50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας | Γίνετε πιο γρήγοροι στην εργασία σας. Αυτές οι 50 συντομεύσεις θα σας κάνουν να εργάζεστε ακόμη πιο γρήγορα στο Excel.
Η συνάρτηση VLOOKUP στο Excel | Αυτή είναι μια από τις πιο δημοφιλείς και δημοφιλείς λειτουργίες του excel που χρησιμοποιείται για την αναζήτηση τιμών από διαφορετικά εύρη και φύλλα.
COUNTIF στο Excel 2016 | Μετρήστε τιμές με συνθήκες χρησιμοποιώντας αυτήν την εκπληκτική συνάρτηση. Δεν χρειάζεται να φιλτράρετε τα δεδομένα σας για να μετρήσετε συγκεκριμένες τιμές. Η λειτουργία Countif είναι απαραίτητη για την προετοιμασία του ταμπλό σας.
Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel | Αυτή είναι μια άλλη βασική λειτουργία του ταμπλό. Αυτό σας βοηθά να συνοψίσετε τιμές υπό συγκεκριμένες συνθήκες.