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

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

Excel VBA IIF

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

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

Αυτό είναι πολύ παρόμοιο με την κατάσταση IF μας αλλά ελαφρώς διαφορετική στη φύση. Η συνθήκη "VBA IIF" ελέγχει την παρεχόμενη έκφραση ή τη λογική δοκιμή και επέστρεψε είτε TRUE είτε FALSE ως αποτέλεσμα.

Σύνταξη VBA IIF

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

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

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

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

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

Ακολουθούν τα παραδείγματα της λειτουργίας 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: Τώρα, εάν η έκφραση είναι FALSE, ποιο θα πρέπει να είναι το αποτέλεσμα. Θα εκχωρήσω το αποτέλεσμα ως "Ο αριθμός 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

You must be wondering what the difference between IF & IIF is. Yes, there is a difference in coding. For example, look at the IF condition code.

Code:

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 "Number 1 is Less than Number 2" End If End Sub

Using IF first, we have applied a logical test.

If Number1> Number2 Then

Then if the logical test is true, we have applied the result.

MsgBox "Number 1 is Greater than Number 2"

Then if the logical test is false, we have applied the different results.

MsgBox "Number 1 is Less than Number 2"

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

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

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

Κώδικας:

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

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

ενδιαφέροντα άρθρα...