Acest tutorial vă va învăța cum să utilizați IsNumeric și IsNumber funcții în VBA pentru a verifica dacă valorile sunt numere.
IsNumeric este o funcție VBA încorporată, în timp ce IsNumber este o funcție Excel care poate fi apelată din codul VBA.
Diferența dintre IsNumber și IsNumeric în VBA
IsNumber verifică dacă o valoare este stocată ca număr. În timp ce, IsNumeric verifică dacă o valoare poate fi convertită într-un număr.
De exemplu, dacă treceți o celulă necompletată ca parametru, IsNumber va returna FALS, în timp ce IsNumeric va returna TRUE. De asemenea, dacă treceți o celulă care conține un număr stocat ca text, IsNumber va returna FALSE și IsNumeric TRUE.
Trebuie să acordați atenție acestor limitări ale ambelor funcții și să decideți în ce cazuri este mai bine să utilizați IsNumeric și când IsNumber.
Utilizarea IsNumeric în VBA
IsNumeric este funcția VBA care verifică dacă o valoare este numerică și returnează un TRUE sau FALSE boolean ca rezultat.
Funcția poate lua o variabilă sau o valoare de celulă.
Iată un exemplu de luare a valorii unei celule:
12345 | Dacă IsNumeric (Sheet1.Range ("A1"). Value) = True AtunciMsgBox "Valoarea în A1 este numerică"AltfelMsgBox "Valoarea din A1 nu este numerică"End If |
În acest exemplu, verificăm dacă valoarea din celula A1 este numerică utilizând IsNumeric. Această funcție returnează mesajul corespunzător, în funcție de rezultatul funcției.
Următorul exemplu efectuează aceeași operație, cu excepția unei variabile în loc de o valoare de celulă:
123456789 | Dim n ca Variantăn = Sheet1.Range ("A1"). ValoareDacă IsNumeric (n) = adevărat atunciMsgBox "Valoarea în A1 este numerică"AltfelMsgBox "Valoarea din A1 nu este numerică"End If |
Folosind IsNumber în VBA
IsNumber este o funcție Excel, care poate fi utilizată în VBA. Are o ieșire aproape similară cu IsNumeric. Să vedem exemplul funcției IsNumber:
123456789 | Dacă Application.WorksheetFunction.IsNumber (Sheet1.Range ("A1"). Value) = True ThenMsgBox "Valoarea în A1 este numerică"AltfelMsgBox "Valoarea din A1 nu este numerică"End If |
După cum puteți vedea din cod, diferența este în sintaxă atunci când apelați funcția. Deoarece IsNumber este funcția Excel, trebuie să punem Application.WorksheetFunction înainte de apelul funcțional.