Microsoft KB Archive/111868

= Err Msg Using CInt Function: Type Mismatch =

Article ID: 111868

Article Last Modified on 9/19/2006

-

APPLIES TO


 * Microsoft Office Professional Edition 2003
 * Microsoft Office Standard Edition 2003
 * Microsoft Office Small Business Edition 2003
 * Microsoft Office Student and Teacher Edition 2003
 * Microsoft Office Basic Edition 2003
 * Microsoft Office XP Professional Edition
 * Microsoft Office XP Small Business Edition
 * Microsoft Office XP Standard Edition for Students and Teachers
 * Microsoft Office XP Developer Edition
 * Microsoft Office 2000 Premium Edition
 * Microsoft Office 2000 Professional Edition
 * Microsoft Office 2000 Small Business Edition
 * Microsoft Office 2000 Standard Edition
 * Microsoft Office 2000 Developer Edition
 * Microsoft Office 97 Standard Edition
 * Microsoft Office 97 Developer Edition

-



This article was previously published under Q111868



SUMMARY
In Microsoft Visual Basic Programming System, Applications Edition, when you use the CInt function with a string that cannot be converted to a number, you receive the following error message:

Run-time error '13':

Type Mismatch



MORE INFORMATION
The CInt function converts an expression to an integer. You can use any valid numeric or string expression, but the string expression must be able to be converted to a number. The Visual Basic Reference states that you should use the CInt function instead of the Val function to provide internationally aware conversions from any other data type to Integer. However, the two functions do not behave exactly the same.

When you use the Val function to return the numbers contained in a string, only the first numeric characters in the string are returned. While the Val function returns only the numeric part of a string expression, the CInt function returns the error message above if the string expression cannot be evaluated as a number.

The following is a table of expressions and values returned by the CInt and the Val functions.   Expression                    Value Returned Val("1726 56th Ave NE")      172656 CInt("1726 56th Ave NE")     Error message Val("asdf")                  0 Cint("asdf")                 Error message Val("1,000")                 1 CInt("1,000")                1000 Val("1.34")                  1.34 CInt("1.34")                 1 Because the Val function returns the value 0 when used with an expression that contains either 0 or no numbers at all, you cannot use it to test whether an input string is a valid number. You can, however, use the CInt function in a procedure to determine whether an input string is a valid number.

