我需要将 VBA 中从 excel 获取的字符串转换为整数。为此,我使用效果很好的 CInt()
。但是,字符串有可能不是数字,在这种情况下,我需要将整数设置为 0。目前我有:
If oXLSheet2.Cells(4, 6).Value <> "example string" Then
currentLoad = CInt(oXLSheet2.Cells(4, 6).Value)
Else
currentLoad = 0
End If
问题是我无法预测此单元格中可能存在的所有可能的非数字字符串。有没有办法告诉它如果它是整数则进行转换,如果不是则设置为 0?
最佳答案
使用IsNumeric
。如果它是数字则返回 true,否则返回 false。
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
关于excel - 如果字符串是数字,则将字符串转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6202074/