VBA πολλαπλές (ένθετες) αν δηλώσεις

Αυτό το σεμινάριο θα σας δείξει πώς να χρησιμοποιήσετε τις ένθετες προτάσεις If στο VBA

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

Μια ενιαία δήλωση IF

1234567891011 Υπό δοκιμήΕάνDim x ως ακέραιοςx = 10Αν x = 10 τότεΑν το x είναι 10, η συνθήκη είναι αληθήςΤο MsgBox x είναι 10 "ΑλλούΑν το x δεν είναι 10, η συνθήκη είναι ψευδήςMsgbox "x δεν είναι 10"Τέλος εανΤέλος υπο

Ένθετες ΕΦ εξηγούνται

Το Nested If σας επιτρέπει να βάλετε πολλαπλές προϋποθέσεις ΜΕΣΑ σε κάθε μία από τις σωστές και/ή λανθασμένες δηλώσεις του αρχικού If.

1234567891011121314151617181920212223242526 Sub TestNestedIf ()Dim x ως ακέραιοςDim y ως ΑκέραιοςDim z ως ακέραιοςx = 10y = 9z = 8Αν x = 10 τότεΑν το x είναι 10, η συνθήκη είναι αληθής, οπότε δοκιμάστε για yΑν y = 8 τότεMsgBox "y είναι 9"Αλλού«αν y δεν είναι 10, η συνθήκη είναι ψευδήςMsgbox "y δεν είναι 9"Τέλος εανΑλλού'αν το x δεν είναι 10 τότε η συνθήκη είναι ψευδής, οπότε ας' δοκιμάσουμε για zΑν z = 8 τότεMsgBox "z είναι 8"ΑλλούΑν το z δεν είναι 8, η συνθήκη είναι ψευδήςMsgbox "z δεν είναι 10"Τέλος εαν'άλλο τέλος Αν απαιτείται για να κλείσει το πρωτότυπο εάνΤέλος εανΤέλος υπο

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

Θα μπορούσαμε επίσης να δημιουργήσουμε μια συνάρτηση σχεδιασμένη από τον χρήστη (UDF) και να καλέσουμε τις τιμές ορισμένων κελιών από το Excel στη συνάρτηση χρησιμοποιώντας παραμέτρους.

1234567891011121314151617181920 Λειτουργία GetIf (x ως ακέραιος, y ως ακέραιος, z ως ακέραιος) ως συμβολοσειράΑν x = 10 τότεΑν το x είναι 10, η συνθήκη είναι αληθής, οπότε δοκιμάστε για yΑν y = 8 τότεGetIf = "y είναι 9"Αλλού«αν y δεν είναι 10, η συνθήκη είναι ψευδήςGetIf = "y δεν είναι 9"Τέλος εανΑλλού'αν το x δεν είναι 10 τότε η συνθήκη είναι ψευδής, οπότε ας' δοκιμάσουμε για zΑν z = 8 τότεGetIf = "z είναι 8"ΑλλούΑν το z δεν είναι 8, η συνθήκη είναι ψευδήςGetIf = "z δεν είναι 10"Τέλος εαν'άλλο τέλος Αν απαιτείται για να κλείσει το πρωτότυπο εάνΤέλος εανΛειτουργία Τέλους

Ένθετο εάν είναι πρακτικό παράδειγμα

Εξετάστε την ακόλουθη συνάρτηση:

12345678910111213141516171819202122 Λειτουργία GetDiscount (dblΤιμή ως διπλό) Ως διπλόΑν dblPrice> = 1000 Τότε«εάν η τιμή είναι μεγαλύτερη από 1000, εκχωρήστε έκπτωσηΕάν dblPrice> = 2000 ΤότεΕάν είναι μεγαλύτερη από 2000, δώστε έκπτωση 10%GetDiscount = dblΤιμή * 0.1Αλλούαλλιώς δώστε 5% έκπτωσηGetDiscount = dblΤιμή * 0,05Τέλος εαναν η τιμή δεν είναι μεγαλύτερη από 1000ΑλλούΕάν είναι μεγαλύτερο από 500, δώστε έκπτωση 2,5%Αν dblPrice> = 500 ΤότεGetDiscount = dblΤιμή * 0,025Αλλούαλλιώς καμία έκπτωσηGetDiscount = 0Τέλος εαν'άλλο τέλος Αν απαιτείται για να κλείσει το πρωτότυπο εάνΤέλος εανΛειτουργία Τέλους

Χρησιμοποιώντας αυτήν τη συνάρτηση σε ένα φύλλο Excel, μπορούμε να δοκιμάσουμε να δούμε τη συνολική τιμή μιας παραγγελίας και να εφαρμόσουμε διαφορετικές εκπτώσεις ανάλογα με το σύνολο.

Προγραμματισμός VBA | Το Code Generator λειτουργεί για εσάς!

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

Το ElseIf μας δίνει τη δυνατότητα να απλοποιήσουμε τον κώδικά σας καθώς μετακινήθηκε μόνο στη δεύτερη πρόταση if εάν η πρώτη επιστρέψει ένα false.

12345678910111213141516 Λειτουργία GetDiscount (dblΤιμή ως διπλό) Ως διπλό«χρησιμοποιήστε άλλο αν μειώσετε την εγγραφή κώδικαΕάν dblPrice> = 2000 ΤότεGetDiscount = dblΤιμή * 0.1ElseIf dblΤιμή> = 1000 ΤότεGetDiscount = dblΤιμή * 0,075ElseIf dblΤιμή> = 500 ΤότεGetDiscount = dblΤιμή * 0,05ElseIf dblΤιμή> = 200 ΤότεGetDiscount = dblΤιμή * 0,025ElseIf dblΤιμή> = 100 ΤότεGetDiscount = dblΤιμή * 0,01ΑλλούGetDiscount = 0Τέλος εανΛειτουργία Τέλους

Χρήση δήλωσης περίπτωσης

Μπορούμε επίσης να χρησιμοποιήσουμε μια δήλωση περίπτωσης για να επιτύχουμε το ίδιο αποτέλεσμα.

1234567891011121314151617 Λειτουργία GetDiscount (dblΤιμή ως διπλό) Ως διπλόΕπιλέξτε Περίπτωση dblPrice«αυτή η δήλωση περίπτωσης έχει 6 διαφορετικά επίπεδα έκπτωσηςΥπόθεση Is> = 2000GetDiscount = dblΤιμή * 0.1Περίπτωση>> 1000GetDiscount = dblΤιμή * 0,075Περίπτωση>> 500GetDiscount = dblΤιμή * 0,05Υπόθεση Is> = 200GetDiscount = dblΤιμή * 0,025Περίπτωση>> 100GetDiscount = dblΤιμή * 0,01Case ElseGetDiscount = 0Τέλος ΕπιλογήΛειτουργία Τέλους

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave