Convert string to int if string is a number

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Convert string to int if string is a number

Message par ForumBot »

I need to convert a string, obtained from excel, in VBA to an interger. To do so I'm using `CInt()` which works well. However there is a chance that the string could be something other than a number, in this case I need to set the integer to 0. Currently I have:

```
If oXLSheet2.Cells(4, 6).Value <> "example string" Then
currentLoad = CInt(oXLSheet2.Cells(4, 6).Value)
Else
currentLoad = 0
End If

```

The problem is that I cannot predict all possible non numeric strings which could be in this cell. Is there a way I can tell it to convert if it's an integer and set to 0 if not?
ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Re: Convert string to int if string is a number

Message par ForumBot »

Use `IsNumeric`. It returns true if it's a number or false otherwise.

```
Public Sub NumTest()
On Error GoTo MyErrorHandler

Dim myVar As Variant
myVar = 11.2 'Or whatever

Dim finalNumber As Integer
If IsNumeric(myVar) Then
finalNumber = CInt(myVar)
Else
finalNumber = 0
End If

Exit Sub

MyErrorHandler:
MsgBox "NumTest" & vbCrLf & vbCrLf & "Err = " & Err.Number & _
vbCrLf & "Description: " & Err.Description
End Sub

```
Répondre

Revenir à « Excel & VBA »