Σπίτι Κοινωνική Media Πώς να χρησιμοποιήσετε If-Then στο Excel 2016 VBA - dummies

Πώς να χρησιμοποιήσετε If-Then στο Excel 2016 VBA - dummies

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

Βίντεο: macros και VB Script στο Excel. 2025

Βίντεο: macros και VB Script στο Excel. 2025
Anonim

If-Then είναι η πιο σημαντική δομή ελέγχου της VBA. Θα χρησιμοποιήσετε πιθανώς αυτή την εντολή σε καθημερινή βάση. Χρησιμοποιήστε τη δομή If-Then όταν θέλετε να εκτελείτε μία ή περισσότερες δηλώσεις υπό όρους. Η προαιρετική ρήτρα Else, αν περιλαμβάνεται, σας επιτρέπει να εκτελέσετε μία ή περισσότερες δηλώσεις εάν η προϋπόθεση που δοκιμάζετε είναι true όχι . Εδώ είναι μια απλή διαδικασία CheckUser, recoded για να χρησιμοποιήσετε τη δομή If-Then-Else:

Sub CheckUser2 () UserName = InputBox ("Εισάγετε το όνομά σας") Εάν UserName = "Satya Nadella" Στη συνέχεια MsgBox ("Καλώς ορίσατε Satya …" "Συγνώμη. Μόνο η Satya Nadella μπορεί να τρέξει αυτό. "End If End End

If-Then παραδείγματα

Η ακόλουθη ρουτίνα δείχνει τη δομή If-Then χωρίς την προαιρετική ρήτρα Else:

Sub GreetMe () Εάν Time <0. 5 τότε MsgBox" Good Morning "End Sub

Η διαδικασία GreetMe χρησιμοποιεί τη λειτουργία χρόνου της VBA για να πάρει το χρόνο του συστήματος. Εάν ο τρέχων χρόνος είναι μικρότερος από. 5, η ρουτίνα εμφανίζει ένα φιλικό χαιρετισμό. Αν ο Χρόνος είναι μεγαλύτερος ή ίσος με. 5, η ρουτίνα τελειώνει και τίποτα δεν συμβαίνει.

Για να εμφανίσετε διαφορετικό χαιρετισμό εάν το Χρόνος είναι μεγαλύτερο ή ίσο με. 5, μπορείτε να προσθέσετε μια άλλη παράμετρο If-Then μετά την πρώτη:

Sub GreetMe2 () Εάν η ώρα = 0. 5 Στη συνέχεια MsgBox "Good Afternoon" End Sub

Σημειώστε ότι> = (μεγαλύτερο ή ίσο) χρησιμοποιείται για τη δεύτερη πρόταση If-Then. Αυτό εξασφαλίζει την κάλυψη ολόκληρης της ημέρας. Αν χρησιμοποιήθηκε> (μεγαλύτερο από), δεν θα εμφανιστεί μήνυμα αν αυτή η διαδικασία εκτελέστηκε ακριβώς στις 12:00 το μεσημέρι. Αυτό είναι πολύ απίθανο, αλλά με ένα σημαντικό πρόγραμμα όπως αυτό, δεν θέλετε να πάρετε οποιεσδήποτε πιθανότητες.

Ένα παράδειγμα If-Then-Else

Μια άλλη προσέγγιση στο προηγούμενο πρόβλημα χρησιμοποιεί την ρήτρα Else. Εδώ είναι η ίδια ρουτίνα που ανακατασκευάστηκε για να χρησιμοποιήσει τη δομή If-Then-Else:

Sub GreetMe3 () Αν Χρόνος <0. 5 τότε MsgBox "Good Morning" Else _ MsgBox "Good Afternoon" End Sub

ο χαρακτήρας συνέχισης (υπογράμμιση) χρησιμοποιείται στο προηγούμενο παράδειγμα. Η εντολή If-Then-Else είναι στην πραγματικότητα μία μόνο δήλωση. Το VBA παρέχει έναν ελαφρώς διαφορετικό τρόπο κωδικοποίησης If-Then-Else κατασκευών που χρησιμοποιούν μια εντολή End If. Επομένως, η διαδικασία GreetMe μπορεί να ξαναγραφεί ως

>
Sub GreetMe4 () Εάν ο χρόνος <0. 5 τότε το MsgBox "Good Morning" Else MsgBox "Καλημέρα" Τέλος Αν τελειώσει

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

Τι πρέπει να κάνετε εάν πρέπει να επεκτείνετε τη ρουτίνα του GreetMe για να χειριστείτε τρεις προϋποθέσεις: το πρωί, το απόγευμα και το βράδυ; Έχετε δύο επιλογές: Χρησιμοποιήστε τρεις δηλώσεις If-Then ή χρησιμοποιήστε μια ένθετη If-Then-Else δομή. Η τοποθέτηση σημαίνει την τοποθέτηση μιας δομής If-Then-Else σε μια άλλη δομή If-Then-Else. Η πρώτη προσέγγιση, χρησιμοποιώντας τρεις δηλώσεις If-Then, είναι απλούστερη:

Sub GreetMe5 () Dim Msg ως String If Time = 0. 5 και Time = 0. 75 Στη συνέχεια Msg = "Evening" MsgBox "Good" & Msg End Sub

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

Η ακόλουθη ρουτίνα εκτελεί την ίδια ενέργεια, αλλά χρησιμοποιεί μια δομή If-Then-End Αν δομή:

Sub GreetMe6 () Dim Msg Ως String Εάν Time = 0. 5 και Time = 0. 75 Then Msg = Τέλος Αν το MsgBox "Good" & Msg End Sub

Χρησιμοποιώντας ElseIf

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

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

Εδώ μπορείτε να ξαναγράψετε τη ρουτίνα GreetMe χρησιμοποιώντας αυτή τη σύνταξη:

Sub GreetMe7 () Dim Msg As String Αν Χρόνος = 0. 5 Και Χρόνος <0. 75 τότε Msg = "Απόγευμα" Else Msg = "Evening "End If MsgBox" Good "& Msg End Sub

Όταν μια προϋπόθεση είναι αληθής, η VBA εκτελεί τις δηλώσεις υπό όρους και τελειώνει η δομή If. Με άλλα λόγια, αυτή η διαδικασία είναι λίγο πιο αποτελεσματική από τα προηγούμενα παραδείγματα. Το συμβιβασμό είναι ότι ο κώδικας είναι πιο δύσκολο να κατανοηθεί.

Ένα άλλο παράδειγμα If-Then

Ακολουθεί ένα άλλο παράδειγμα που χρησιμοποιεί την απλή φόρμα της δομής If-Then. Αυτή η διαδικασία προτρέπει τον χρήστη για μια ποσότητα και στη συνέχεια εμφανίζει την κατάλληλη έκπτωση, με βάση την ποσότητα που εισάγει ο χρήστης:

Sub ShowDiscount () Dim Ποσότητα Μεγάλη Dim Έκπτωση Διπλή Ποσότητα = InputBox ("Enter Quantity" > 0 Στη συνέχεια Έκπτωση = 0. 1 Εάν Ποσότητα> = 25 Στη συνέχεια Έκπτωση = 0. 25 Εάν Ποσότητα> = 50 Στη συνέχεια Έκπτωση = 0. 2 Εάν Ποσότητα> = 75 Τότε Έκπτωση = 0. 25 MsgBox "Έκπτωση:

Παρατηρήστε ότι κάθε εντολή If-Then σε αυτή τη ρουτίνα εκτελείται και η τιμή για το Discount μπορεί να αλλάξει καθώς εκτελούνται οι δηλώσεις. Ωστόσο, η ρουτίνα εμφανίζει τελικά τη σωστή τιμή για την έκπτωση επειδή οι δηλώσεις If-Then είναι κατά σειρά ανόδου των τιμών έκπτωσης.

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

Sub ShowDiscount2 () Dim Ποσότητα Μεγάλη Dim Έκπτωση ως Διπλή Ποσότητα = InputBox ("Εισαγωγή Ποσότητα:") τότε Έκπτωση = 0.1 Ποσότητα ElseIf> = 25 Και Ποσότητα <50 τότε Έκπτωση = 0. 15 Ποσότητα ElseIf> = 50 Και Ποσότητα <75 τότε Έκπτωση = 0. 2 ElseIf Ποσότητα> = 75 Τότε Έκπτωση = 0. 25 Τέλος Αν MsgBox "Έκπτωση: Έκπτωση End Sub

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

Πώς να χρησιμοποιήσετε If-Then στο Excel 2016 VBA - dummies

Η επιλογή των συντακτών

Η Λογιστική Λογισμικού Fiddle-Faddle - Ανδρείκελα

Η Λογιστική Λογισμικού Fiddle-Faddle - Ανδρείκελα

Απαιτεί είτε μια ολόκληρη δέσμη Fiddle-faddling με αριθμούς ή να μάθουν πώς να χρησιμοποιούν τη διπλή λογιστική βιβλία. Για να δημιουργήσετε αυτές τις δηλώσεις με ένα λογιστικό πρόγραμμα όπως το QuickBooks 2012, πρέπει να χρησιμοποιήσετε λογιστική διπλής εισόδου. Μπορείτε να δημιουργήσετε οικονομικές καταστάσεις χρησιμοποιώντας τη μέθοδο fiddle-faddle. ...

Τα εργαλεία απόφασης QuickBooks 2012 - ανδρείκελα

Τα εργαλεία απόφασης QuickBooks 2012 - ανδρείκελα

Αν είστε επαγγελματίας λογιστής, πιθανώς να μην χρησιμοποιήσετε την Απόφαση Εργαλεία εντολών στο QuickBooks 2012. Ωστόσο, θα πρέπει να γνωρίζετε ότι ορισμένες προηγούμενες εκδόσεις των QuickBooks (εκείνες οι εκδόσεις πριν από το 2009) περιλαμβάνουν μια εντολή Company → Planning & Budgeting → Decision Tools. Εάν αυτή η εντολή είναι διαθέσιμη στην έκδοση QuickBooks και εσείς ή κάποιον από τους πελάτες σας ή ...

Το Δελτίο Ταμειακών Ροών του Εγχειριδίου Επιχειρηματικού Σχεδίου του QuickBooks - ανδρείκελα

Το Δελτίο Ταμειακών Ροών του Εγχειριδίου Επιχειρηματικού Σχεδίου του QuickBooks - ανδρείκελα

16 σειρές υπολογισθέντων δεδομένων. Όπως σε άλλα χρονοδιαγράμματα, ένας προσδιοριστής περιόδου ορίζει τις περιόδους για τις οποίες υπολογίζονται οι τιμές. Η πρώτη περίοδος αποθηκεύεται στο κελί C141 ως ακέραιο 1. Οι περίοδοι που ακολουθούν αποθηκεύονται ως η προηγούμενη περίοδος συν 1. Οι άλλες τιμές της Κατάστασης Ταμειακών Ροών υπολογίζονται ...

Η επιλογή των συντακτών

Πώς να ζωγραφίζει με το Photoshop Elements 11 Βουρτσάκι με ιμπρεσιονιστές

Πώς να ζωγραφίζει με το Photoshop Elements 11 Βουρτσάκι με ιμπρεσιονιστές

11 έχει σχεδιαστεί για να ζωγραφίζει πάνω από φωτογραφίες με τρόπο που τους κάνει να μοιάζουν με έργα ζωγραφικής. Ο καλύτερος τρόπος για να εξοικειωθείτε με το Βούρτσα Ιμπρεσιονιστών είναι να ανοίξετε την αγαπημένη σας εικόνα και να πειραματιστείτε με το εργαλείο. Μπορείτε να ορίσετε διάφορες επιλογές που αλλάζουν το στυλ της ...

Πώς να οργανώσετε τις φωτογραφίες σας στο Photoshop Elements 11

Πώς να οργανώσετε τις φωτογραφίες σας στο Photoshop Elements 11

Μπορείτε να προσθέσετε τόμους φωτογραφιών στο Photoshop Στοιχεία 11 από όχι μόνο σαρωμένες εικόνες και CD / DVD, αλλά και ψηφιακές φωτογραφικές μηχανές, κινητά τηλέφωνα και tablet. Στις πρώτες ημέρες του Adobe Photoshop, περίπου στις αρχές της δεκαετίας του '90 και αργότερα όταν έφτασε το Photoshop Elements, οι περισσότερες φωτογραφίες αποκτήθηκαν από σαρωμένες εκτυπώσεις, σαρωμένες διαφάνειες, κάποιες κάμερες point-and-shoot και ...

Πώς να Paint με το εργαλείο πινέλου στο Photoshop Elements 9

Πώς να Paint με το εργαλείο πινέλου στο Photoshop Elements 9

Το Photoshop Elements δημιουργεί μαλακές κινήσεις. Πόσο μαλακά αυτά τα εγκεφαλικά επεισόδια εξαρτώνται από το ποια βούρτσα χρησιμοποιείτε. Από προεπιλογή, ακόμη και η πιο σκληρή βούρτσα έχει μια ελαφρώς μαλακή άκρη επειδή είναι αντι-αλλιώς. Η αντικατάσταση δημιουργεί μια μόνο σειρά μερικώς γεμάτων εικονοστοιχείων κατά μήκος των άκρων για να παραχθεί η ψευδαίσθηση μιας ομαλής ακμής. Μπορείτε ...

Η επιλογή των συντακτών

Βασικά στοιχεία δικτύου: Κάρτες διεπαφής δικτύου - Dummies

Βασικά στοιχεία δικτύου: Κάρτες διεπαφής δικτύου - Dummies

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

Βασικά στοιχεία δικτύου: OSI Physical Layer < < Βασικά στοιχεία δικτύου: OSI Physical Layer - dummies

Βασικά στοιχεία δικτύου: OSI Physical Layer < < Βασικά στοιχεία δικτύου: OSI Physical Layer - dummies

Το κάτω στρώμα του μοντέλου Open Systems Interconnection (OSI) Φυσική στρώση. Απευθύνεται στα φυσικά χαρακτηριστικά του δικτύου, όπως είναι τα είδη των καλωδίων που χρησιμοποιούνται για τη σύνδεση των συσκευών, οι τύποι των χρησιμοποιούμενων συνδέσμων, η διάρκεια των καλωδίων κ.λπ. Για παράδειγμα, το πρότυπο Ethernet για το καλώδιο 10BaseT καθορίζει ...