ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Testing for numeric value in VBA (https://www.excelbanter.com/excel-programming/352397-testing-numeric-value-vba.html)

rmcompute

Testing for numeric value in VBA
 
I am trying to test a variable to determine if it is numeric

I typed the following in the immediate window:
mvar = 4 ?
isnumber(mvar)

Result: Sub or Function not defined.

In the program, I typed:

Dim mvar as String
mvar = "5"

Application.WorksheetFunction.IsNumber(mvar)
Result: False

mvar = "A"
Application.WorksheetFunction.IsNumber(mvar)
Result: False

Shouldn' t the test return true for 5. How can I test to determine if the
value is a number without checking if it is 0,1,2,3 etc. ?

Steve Yandl

Testing for numeric value in VBA
 
Try Isnumeric( )

Steve


"rmcompute" wrote in message
...
I am trying to test a variable to determine if it is numeric

I typed the following in the immediate window:
mvar = 4 ?
isnumber(mvar)

Result: Sub or Function not defined.

In the program, I typed:

Dim mvar as String
mvar = "5"

Application.WorksheetFunction.IsNumber(mvar)
Result: False

mvar = "A"
Application.WorksheetFunction.IsNumber(mvar)
Result: False

Shouldn' t the test return true for 5. How can I test to determine if the
value is a number without checking if it is 0,1,2,3 etc. ?




Ron Rosenfeld

Testing for numeric value in VBA
 
On Sat, 4 Feb 2006 12:24:02 -0800, rmcompute
wrote:

I am trying to test a variable to determine if it is numeric

I typed the following in the immediate window:
mvar = 4 ?
isnumber(mvar)

Result: Sub or Function not defined.

In the program, I typed:

Dim mvar as String
mvar = "5"

Application.WorksheetFunction.IsNumber(mvar)
Result: False

mvar = "A"
Application.WorksheetFunction.IsNumber(mvar)
Result: False

Shouldn' t the test return true for 5. How can I test to determine if the
value is a number without checking if it is 0,1,2,3 etc. ?


The IsNumber worksheet function tests whether a value IS a number. In your
case, although the value can be evaluated as a number, since you have enclosed
it within double quotes, it IS a string.

The VBA IsNumeric function tests whether an expression can be EVALUATED as a
number. Perhaps that is what you want.

This Sub may help you to see the differences:

=====================
Option Explicit

Sub foo()
Const myvar1 = "1"
Const myvar2 = 1

Debug.Print IsNumeric(myvar1) 'True
Debug.Print IsNumeric(myvar2) 'True

Debug.Print Application.WorksheetFunction.IsNumber(myvar1) 'False
Debug.Print Application.WorksheetFunction.IsNumber(myvar2) 'False


End Sub
======================


--ron

Gary''s Student

Testing for numeric value in VBA
 
A string containing digits is not a number. IsNumber wil return FALSE for :

1. text strings
2. blanks
3. errors
4. Booleans (logicals)
even though TRUE is 1, IsNumber(TRUE) is false!!
5. references


Use the function and believe what it tells you.


--
Gary''s Student


"rmcompute" wrote:

I am trying to test a variable to determine if it is numeric

I typed the following in the immediate window:
mvar = 4 ?
isnumber(mvar)

Result: Sub or Function not defined.

In the program, I typed:

Dim mvar as String
mvar = "5"

Application.WorksheetFunction.IsNumber(mvar)
Result: False

mvar = "A"
Application.WorksheetFunction.IsNumber(mvar)
Result: False

Shouldn' t the test return true for 5. How can I test to determine if the
value is a number without checking if it is 0,1,2,3 etc. ?



All times are GMT +1. The time now is 06:21 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com