How to convert String to Integer in VBA (with Examples)

The VBA CInt() function can be used to convert a String to an Integer. This is done by passing the string as an argument to the CInt() function. For example, CInt(“50”) would return 50 as an Integer data type. Additionally, the Val() function can be used to convert a string to an Integer, which is done by passing the string as an argument to the Val() function. For example, Val(“50”) would return 50 as an Integer data type. Both of these functions are useful when working with numerical data in VBA.


You can use the CInt function in VBA to convert a text string to an integer.

Here are two common ways to use this function in practice:

Method 1: Convert String to Integer in VBA

Sub ConvertStringToInteger()

    Dim i As Integer

    For i = 2 To 11
        Range("B" & i) = CInt(Range("A" & i))
    Next i

End Sub

This particular macro will convert each string in the range A2:A11 to an integer and display the integers in the range B2:B11.

Method 2: Convert String to Integer in VBA (Only if String is a Number)

Sub ConvertStringToInteger()

    Dim i As Integer

    For i = 2 To 11
        If IsNumeric(Range("A" & i)) Then
            Range("B" & i) = CInt(Range("A" & i))
        Else
            Range("B" & i) = 0
        End If
    Next i

End Sub

This particular macro will convert each string in the range A2:A11 to an integer only if the string is a number. Otherwise, the string will be converted to a value of zero.

The following examples show how to use each method in practice.

Example 1: Convert String to Integer in VBA

Suppose we have the following column of values in Excel that are currently formatted as text strings:

Suppose we would like to convert each string to an integer and display the integers in column B.

We can create the following macro to do so:

Sub ConvertStringToInteger()

    Dim i As Integer

    For i = 2 To 11
        Range("B" & i) = CInt(Range("A" & i))
    Next i

End Sub

When we run this macro, we receive the following output:

Example 2: Convert String to Integer in VBA (Only if String is a Number)

Suppose we have the following column of values in Excel that are currently formatted as text strings:

Suppose we would like to convert each string to an integer only if the string is a number and display the integers in column B.

We can create the following macro to do so:

Sub ConvertStringToInteger()

    Dim i As Integer

    For i = 2 To 11
        If IsNumeric(Range("A" & i)) Then
            Range("B" & i) = CInt(Range("A" & i))
        Else
            Range("B" & i) = 0
        End If
    Next i

End Sub

When we run this macro, we receive the following output:

Notice that only the text strings in column A that are numbers are converted to integers in column B.

Otherwise, the text strings are simply converted to a value of zero.

Note: You can find the complete documentation for the VBA Cint function .

x