VBA IIF | Πώς να χρησιμοποιήσετε τη λειτουργία VBA IIF στο Excel; (με παραδείγματα)

Excel VBA IIF

Εάν είστε ο τακτικός χρήστης των μακροεντολών VBA, τότε θα πρέπει να έχετε συναντήσει τη λειτουργία που ονομάζεται "IIF" ή μπορεί να έχετε δει αυτήν τη λειτουργία στο Διαδίκτυο. Εκ πρώτης όψεως, γιατί πρέπει να έχετε σκεφτεί ότι είναι μια συνθήκη IF όπως η κανονική μας δήλωση IF στο Excel. Αλλά αυτή δεν είναι η ίδια δήλωση IF που χρησιμοποιούμε για την αξιολόγηση λογικών δοκιμών και την επίτευξη αποτελεσμάτων με βάση τα κριτήρια που δίνουμε. Σε αυτό το άρθρο, θα σας καθοδηγήσουμε στη συνθήκη "VBA IIF" στο VBA.

Τι κάνει η κατάσταση IIF στο VBA;

Αυτό είναι πολύ παρόμοιο με την κατάσταση IF μας αλλά ελαφρώς διαφορετική στη φύση. Η συνθήκη "VBA IIF" ελέγχει την παρεχόμενη έκφραση ή λογική δοκιμή και επιστρέφει είτε ΑΛΗΘΕΙΑ ή ΛΑΘΟΣ ως αποτέλεσμα.

Σύνταξη VBA IIF

Ρίξτε μια ματιά στη σύνταξη της συνάρτησης IIF.

  • Έκφραση: Αυτό δεν είναι παρά το λογικό τεστ που θα θέλαμε να κάνουμε.
  • Μέρος Ture: Εάν η λογική δοκιμή είναι ΑΛΗΘΗ, τι θα έπρεπε να είναι το αποτέλεσμα του ΑΛΗΘΟΥ μέρους.
  • False Part: Εάν το λογικό τεστ είναι FALSE, τότε ποιο θα πρέπει να είναι το αποτέλεσμα του FALSE.

Μπορούμε να εισάγουμε τα δικά μας αποτελέσματα με ΑΛΗΘΕΙΑ & ΛΑΘΟΣ μέρη Αν και τα επιχειρήματα μοιάζουν με αυτά της συνθήκης IF, αυτό θα είναι ελαφρώς διαφορετικό. Θα το δούμε στα παραδείγματα της λειτουργίας Excel VBA IIF.

Μία από τις βασικές διαφορές μεταξύ του κανονικού "IF" και αυτού του "IIF" είναι ότι μπορούμε να μειώσουμε τον κώδικα σε μία γραμμή με IIF, όπου με συνθήκη IF χρειάζονται τουλάχιστον 5 γραμμές για να φτάσουμε στο ίδιο αποτέλεσμα.

Παράδειγμα της λειτουργίας VBA IIF

Ακολουθούν τα παραδείγματα της λειτουργίας VBA IIF στο excel.

Μπορείτε να κατεβάσετε αυτό το Πρότυπο VBA IIF Excel εδώ - Πρότυπο VBA IIF Excel

Παράδειγμα # 1 - VBA IIF

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

Βήμα 1: Ξεκινήστε τη μακροεντολή.

Βήμα 2: Ορίστε τη μεταβλητή ως συμβολοσειρά στο VBA.

Κώδικας:

 Sub IIF_Example () Dim FinalResult as String End Sub 

Βήμα 3: Ορίστε δύο ακόμη μεταβλητές ως Long στο VBA.

Κώδικας:

 Υπο IIF_ Παράδειγμα () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long End Sub 

Βήμα 4: Τώρα για τη μεταβλητή "Number1" αντιστοιχίστε την τιμή 105 και για τη μεταβλητή "Number2" αντιστοιχίστε την τιμή 100.

Κώδικας:

 Υπο IIF_ Παράδειγμα () Dim FinalResult as String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub 

Βήμα 5: Τώρα για την πρώτη καθορισμένη μεταβλητή "FinalResult" θα εκχωρήσουμε το αποτέλεσμα της συνάρτησης IIF. Ανοίξτε λοιπόν το IIF για τη μεταβλητή.

Βήμα 6: Δώστε την έκφραση ως Number1> Number2.

Βήμα 7: Τώρα, εάν η έκφραση είναι ΑΛΗΘΕΙΑ ποιο θα πρέπει να είναι το αποτέλεσμα Θα εκχωρήσω το αποτέλεσμα ως "Ο αριθμός 1 είναι μεγαλύτερος από τον αριθμό 2".

Βήμα 8: Τώρα, εάν η έκφραση είναι ΛΑΘΟΣ ποιο θα πρέπει να είναι το αποτέλεσμα. Θα εκχωρήσω το αποτέλεσμα ως "Ο αριθμός 1 είναι μικρότερος από τον αριθμό 2".

Τώρα η μεταβλητή τιμή θα είναι ένα από τα παρακάτω.

Εάν είναι αλήθεια: "Ο αριθμός 1 είναι μεγαλύτερος από τον αριθμό 2"

Εάν είναι λάθος: "Ο αριθμός 1 είναι μικρότερος από τον αριθμό 2"

Βήμα 9: Ας δείξουμε το αποτέλεσμα σε ένα πλαίσιο μηνυμάτων στο VBA.

Κώδικας:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 is Greater than Number 2", "Ο αριθμός 1 είναι μικρότερος από τον αριθμό 2") MsgBox FinalResult End Sub 

Τώρα ας τρέξουμε τον κώδικα και να δούμε το αποτέλεσμα.

Δεδομένου ότι η τιμή του αριθμού 1 είναι 105 που είναι μεγαλύτερη από την τιμή του αριθμού 2 του 100, έχουμε το αποτέλεσμα ως "ο αριθμός 1 είναι μεγαλύτερος από τον αριθμό 2". Δεδομένου ότι η έκφραση είναι αληθινή, η συνθήκη IIF επέστρεψε αυτό το αποτέλεσμα.

Παράδειγμα # 2 - IF έναντι IIF

Πρέπει να αναρωτιέστε ποια είναι η διαφορά μεταξύ IF & IIF. Ναι, υπάρχει διαφορά στην κωδικοποίηση. Για παράδειγμα, δείτε τον κωδικό συνθήκης IF.

Κώδικας:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Ο αριθμός 1 είναι μικρότερος από τον αριθμό 2" Τέλος εάν Τέλος Υποτ 

Χρησιμοποιώντας πρώτα το IF εφαρμόσαμε μια λογική δοκιμή.

 Εάν Number1> Number2 τότε 

Στη συνέχεια, εάν το λογικό τεστ είναι αλήθεια, έχουμε εφαρμόσει το αποτέλεσμα.

MsgBox "Ο αριθμός 1 είναι μεγαλύτερος από τον αριθμό 2"

Στη συνέχεια, εάν ο λογικός έλεγχος είναι εσφαλμένος, εφαρμόσαμε τα διαφορετικά αποτελέσματα.

MsgBox "Ο αριθμός 1 είναι μικρότερος από τον αριθμό 2"

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

Παράδειγμα # 3 - Συνθήκη VBA Nested IIF

Όπως και πώς χρησιμοποιούμε ένθετο IF για να δοκιμάσουμε πολλές συνθήκες ομοίως, μπορούμε επίσης να χρησιμοποιήσουμε πολλαπλούς IIF. Ρίξτε μια ματιά στον παρακάτω κώδικα.

Κώδικας:

 Sub IIF_Example2 () Dim FinalResult As String Dim Marks as Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks) > 60, "Τρίτο", "Αποτυχία")))) MsgBox FinalResult End Sub 

Η παραπάνω συνθήκη IIF δοκιμάζει πέντε λογικές δοκιμές και επιστρέφει το αποτέλεσμα αναλόγως.