Αυτό το σεμινάριο θα σας διδάξει πώς να χρησιμοποιήσετε το IsNumeric και IsNumber λειτουργεί στο VBA για να ελέγξει αν οι τιμές είναι αριθμοί.
Το IsNumeric είναι μια ενσωματωμένη συνάρτηση VBA, ενώ το IsNumber είναι μια συνάρτηση Excel που μπορεί να κληθεί από τον κώδικα VBA.
Διαφορά μεταξύ IsNumber και IsNumeric στο VBA
Το IsNumber ελέγχει αν μια τιμή είναι αποθηκευμένη ως αριθμός. Ενώ, το IsNumeric ελέγχει εάν μια τιμή μπορεί να μετατραπεί σε αριθμό.
Για παράδειγμα, εάν περάσετε ένα κενό κελί ως παράμετρο, το IsNumber θα επιστρέψει FALSE, ενώ το IsNumeric θα επιστρέψει TRUE. Επίσης, εάν περάσετε ένα κελί που περιέχει αριθμό αποθηκευμένο ως κείμενο, το IsNumber θα επιστρέψει FALSE και IsNumeric TRUE.
Πρέπει να δώσετε προσοχή σε αυτούς τους περιορισμούς και των δύο λειτουργιών και να αποφασίσετε σε ποιες περιπτώσεις είναι καλύτερο να χρησιμοποιήσετε το IsNumeric και πότε το IsNumber.
Χρήση του IsNumeric στο VBA
IsNumeric είναι η συνάρτηση VBA η οποία ελέγχει εάν μια τιμή είναι αριθμητική και επιστρέφει ως αποτέλεσμα μια πραγματική ή λανθασμένη Boolean.
Η συνάρτηση μπορεί να λάβει μια μεταβλητή ή μια τιμή κελιού.
Ακολουθεί ένα παράδειγμα λήψης τιμής κελιού:
12345 | Εάν IsNumeric (Sheet1.Range ("A1"). Value) = True ΤότεMsgBox "Η τιμή στο Α1 είναι αριθμητική"ΑλλούMsgBox "Η τιμή στο A1 δεν είναι αριθμητική"Τέλος εαν |
Σε αυτό το παράδειγμα, ελέγχουμε αν η τιμή από το κελί A1 είναι αριθμητική χρησιμοποιώντας το IsNumeric. Αυτή η συνάρτηση επιστρέφει το κατάλληλο μήνυμα, ανάλογα με το αποτέλεσμα της συνάρτησης.
Αυτό το επόμενο παράδειγμα εκτελεί την ίδια λειτουργία, εκτός από μια μεταβλητή αντί για μια τιμή κελιού:
123456789 | Dim n ως Παραλλαγήn = Sheet1.Range ("A1"). ΤιμήΕάν IsNumeric (n) = True ΤότεMsgBox "Η τιμή στο Α1 είναι αριθμητική"ΑλλούMsgBox "Η τιμή στο A1 δεν είναι αριθμητική"Τέλος εαν |
Χρήση του IsNumber στο VBA
IsNumber είναι μια συνάρτηση Excel, η οποία μπορεί να χρησιμοποιηθεί σε VBA. Έχει σχεδόν παρόμοια έξοδο με το IsNumeric. Ας δούμε το παράδειγμα της συνάρτησης IsNumber:
123456789 | Εάν Application.WorksheetFunction.IsNumber (Sheet1.Range ("A1"). Value) = True ΤότεMsgBox "Η τιμή στο Α1 είναι αριθμητική"ΑλλούMsgBox "Η τιμή στο A1 δεν είναι αριθμητική"Τέλος εαν |
Όπως μπορείτε να δείτε από τον κώδικα, η διαφορά είναι στη σύνταξη κατά την κλήση της συνάρτησης. Δεδομένου ότι το IsNumber είναι η συνάρτηση Excel, πρέπει να βάλουμε Application.WorksheetFunction πριν από την κλήση λειτουργίας.