VBA Excel 将字符串数组元素转换为长整型 "Type Mismatch"

VBA Excel Convert String Array element to Long "Type Mismatch"

所以我要解决一个简单的问题。我有一列数字,我正在以字符串形式读取这些数字。然后我想将字符串转换为 Long 并将其存储在 Long 类型的数组中。

我最初试过这个:

ElseIf stArray(0, i) = "SrcWth" Then
        Debug.Print "Found the Width Column"
        For j = 0 To UBound(stArray)
            whArray(0, j) = CLng(stArray(j, i))
        Next j

stArray 是保存 CSV 文件信息的二维数组。它是字符串类型。 whArray 是一个二维数组,它将保存我想要的两列数字。但是,它抱怨类型不匹配。

然后我想也许它看到了一些空白,所以我尝试修剪它。

ElseIf stArray(0, i) = "SrcWth" Then
        Debug.Print "Found the Width Column"
        For j = 0 To UBound(stArray)
            whArray(0, j) = CLng(Trim(stArray(j, i)))
        Next j

没有区别。 我究竟做错了什么?我想是 CLng 有问题,所以我不确定。

谢谢

您传递给 CLng 的第一件事是 "SrcWth"

我想这是 header 列,所以您想从 1

开始下一个循环
For j = 1 To UBound(stArray, 1)
    whArray(0, j) = CLng(Trim(stArray(j, i)))
Next j

您还可以检查它是否为数字字符串

For j = 1 To UBound(stArray, 1)
    If Not isNumeric(Trim(stArray(j, i))) Then
        MsgBox "invalid value: """ & Trim(stArray(j, i)) & """ at position " & j & ", " & i
    Else
        whArray(0, j) = CLng(Trim(stArray(j, i)))
    End If
Next j  

编辑:事实证明数组包含空字符串,因为它的初始化对于数据来说太大了。尝试使用 CLng 转换空字符串也会 return 类型不匹配。