VBA String to Integer

Publication Date :

Blog Author :

Table Of Contents

arrow

Excel VBA String to Integer

String and Integer are common data types. But, often, as part of our data analysis, we may want to convert string data type variables to Integer data type. It is possible by using the CINT function in VBA.

VBA String to Integer

Syntax of CINT Function

The CINT is a data type conversion function. This function converts provided expressions into an Integer data type. When we say “Expression,” it must be a numerical value in the range of Integer data type in VBA, i.e., between -32768 to 32767.

Now, look at the syntax of the CINT function in VBA.

CINT Function
  • Expression is the value or the variable which contains the value that needs to convert to an Integer data type.

Note 1: When you pass, the expression value must be between -32768 to 32767. Otherwise, it will lead to an “Overflow” error, i.e., assigning the value over the data type's limit.

Note 2: Expression must be a numerical value. If the expression is string value or text value, it will cause a “Run Time Error 13: Type Mismatch.”

This article will show you the Integer data type conversion from a string to an integer using the function “CINT.”

Examples of CINT Function in VBA

Example #1

Let us perform the first example of converting one fraction number to an Integer data type.

Code:

Sub CINT_Example1()

Dim IntegerNumber As String
Dim IntegerResult As Integer

IntegerNumber = 2564.589
IntegerResult = CInt(IntegerNumber)
MsgBox IntegerResult

End Sub
  • In the above code for the variable “IntegerNumber,” we have assigned the value as “2564.589.”
  • In the next line, we have applied a CINT function. So, it will convert the provided value to the nearest integer number.
VBA String to Integer Example 1

So, we got the result – 2565, and the supplied number is 2564.589. When the decimal value is more than 0.5, the CINT functions round up the number to the next Integer number. When the decimal value is less than or equal to 0.5, CINT functions round down to the same Integer number.

For an example, look at the below code where the number is less than 0.5.

Code:

Sub CINT_Example1()

Dim IntegerNumber As String
Dim IntegerResult As Integer

IntegerNumber = 2564 - 0.5
IntegerResult = CInt(IntegerNumber)
MsgBox IntegerResult

End Sub

It should give the result as 2564, not 2565.

VBA String to Integer Example 1-1

Example #2

Now, we will try and assign the number more than the limit of the Integer data type.

Code:

Sub CINT_Example2()

Dim IntegerNumber As String
Dim IntegerResult As Integer

IntegerNumber = 51456.785
IntegerResult = CInt(IntegerNumber)
MsgBox IntegerResult

End Sub

We have assigned the “IntegerNumber = 51456.785” more than the Integer data type limit. So now, if we try to run the code, it will throw an overflow error in VBA.

Example 2

Whenever the provided number is more than the Integer data type, let us show the simple message box saying, “Number is More Than the Limit of the Integer Data Type.”

Code:

Sub CINT_Example2()

Dim IntegerNumber As String
Dim IntegerResult As Integer

IntegerNumber = 51456.785
On Error GoTo Message:
IntegerResult = CInt(IntegerNumber)

Message:
 If Err.Number = 6 Then MsgBox IntegerNumber & " 
 is More Than the Limit of the Integer Data Type"
End Sub

It will show the message below whenever the provided number is outside the Integer data type range.

Example 2-1

Example #3

Now, we will try to assign the value which is not numeric.

Sub CINT_Example2()

Dim IntegerNumber As String
Dim IntegerResult As Integer

IntegerNumber = "Hello"
IntegerResult = CInt(IntegerNumber)
MsgBox IntegerResult

End Sub

We have assigned the value “Hello,” which is not numeric. It causes a “Type Mismatch Error”.

Example 3

Instead of showing the error like this, let us put a simple information message box in front of the user. The below code will put the message box saying, “The Provided Expression Value is Non-Numeric, So, cannot be converted.”

Code:

Sub CINT_Example2()

Dim IntegerNumber As String
Dim IntegerResult As Integer

IntegerNumber = "Hello"
On Error GoTo Message:
IntegerResult = CInt(IntegerNumber)

Message:
 If Err.Number = 13 Then MsgBox IntegerNumber & " : 
 The Provided Expression Value is Non-Numeric, So cannot be converted"
End Sub

It will show the message box below.

Example 3-1

Things to Remember

  • The CINT function converts the value from another data type to an Integer data type.
  • Integers can hold values from -32768 to 32767. Anything above these numbers will cause an “Overflow” error.
  • Only string data type contains numerical data that will convert to an Integer data type.