excel - 如果字符串是数字,则将字符串转换为 int

标签 excel vba

我需要将 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/

相关文章:

vba - 如何遍历一个范围并用值填充另一个工作表的单元格?

java - 销毁在java中不工作

vba - 使用 VBA 中生成的公式在工作表之间进行引用

vba - 删除工作表并使用相同的工作表名称重新创建

vba - 获取逻辑列字母

excel - VBA-excel将图表粘贴为图片

vba - Excel 选择与激活

php - 使用 PHP 和 MySql 中的印地语 (Unicode) 内容将数据导出到 Excel

vba - 从 Excel VBA 调用 Oracle PL SQL 函数

excel - 将 DoughnutHoleSize 属性设置为小于 10