通常,如果我想用逗号分隔的字符串创建一个数组,那么它就是我想要的String数组以及Split()
我将要使用的函数。但是,现在我需要将逗号分隔的字符串转换为Variant数组,以便可以将其用作函数参数。
不幸的是,尝试使用填充变体数组Split()
会引发Type Mismatch错误,下面是测试示例。
Public Sub GetTheStuff()
Dim varArray() As Variant
varArray = Split("Bob,Alice,Joe,Jane", ",") '<~~ Error 13, Type Mismatch
DoTheThing varArray
End Sub
Private Sub DoTheThing(Args() As Variant)
Dim i As Long
For i = LBound(Args) To UBound(Args)
Debug.Print Args(i)
Next i
End Sub
是否有一种简单的方法来从定界字符串填充Variant数组,还是我必须编写自己的函数才能这样做?
注意:我不能改变我正在调用的函数需要Variant数组作为参数的事实,也不能以分隔字符串以外的任何形式获取输入。
总之,没有-没有Split函数会返回Variant数组。您基本上有2个选择-如果数组很小,则可以将其转换:
Dim rawArray() As String
Dim varArray() As Variant
rawArray = Split("Bob,Alice,Joe,Jane", ",")
ReDim varArray(LBound(rawArray) To UBound(rawArray))
Dim index As Long
For index = LBound(rawArray) To UBound(rawArray)
varArray(index) = rawArray(index)
Next index
您已经在问题中提到的第二个选项-编写您自己的CSV解析器(烦人但也不是很困难)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句