VBA分割数组,带定界符,无循环

时间:2018-06-22 15:36:45

标签: arrays excel vba delimiter

所以我试图在不使用任何循环的情况下拆分数组。 xData是一种存储csv文件中数据的变体,csv文件中的每一行都包含ID; value,然后将每一行放入数组中。

dData.setNameArraydData.setDataArray是一个自定义类型对象,用于存储排序后的数据以供以后使用。

有了循环,我得到了:

Dim i As Integer
For i = 1 To UBound(xData)
    dData.setNameArray = Split(xData(i), ";")(0)
    dData.setDataArray = Split(xData(i), ";")(1)
Next i

但是由于大量数据,我想避免这种情况。我想到了删除for loop并按原样拆分数组,但似乎没有用。

还有其他方法可以避免使用循环吗?我发现Manipulating arrays without loops的第一个答案似乎是正确的方向。但是我不是100%知道如何使用它(如果可能的话)。

1 个答案:

答案 0 :(得分:0)

我认为最有效的方法如下。注意使用Long代替Integer

Dim i As Long
For i = 1 To UBound(xData)
    Dim sa() As String
    sa = Split(xData(i), ";")
    dData.setNameArray = sa(0)
    dData.setDataArray = sa(1)
Next i