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 类型不匹配。
所以我要解决一个简单的问题。我有一列数字,我正在以字符串形式读取这些数字。然后我想将字符串转换为 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 类型不匹配。