为什么VBA功能"拆分"返回一个二维数组,而不是一维数组?

时间:2016-04-18 09:27:09

标签: arrays excel vba excel-vba split

当我使用函数 split 将字符串分解为数组时,我得到2个不同的结果。

如果我在代码中输入字符串,则返回的是一维数组-array(0),array(1),array(2)

values_array = Array(Split("value1, value2", ","))

但是,如果从单元格中读取值,则返回为二维数组 - 数组(0,0),数组(0,1),数组(0,2)

values_array = Array(Split(row.Columns(2).Value, ","))

PS。在上面的代码行中" row"是昏暗的范围

它可能看起来很愚蠢,但我这样尝试了它并没有工作

values_array = Array(Split(Format(row.Columns(2).Value, "@"), ","))

1 个答案:

答案 0 :(得分:5)

Array(Split("value1, value2", ","))Array(Split(row.Columns(2).Value, ","))都会创建一个二维数组。

Split函数返回一个数组 Array函数采用可变数量的参数并从中生成数组。

因此,在这两种情况下,你都在制作一个带有一个元素的数组,这个元素本身就是一个数组 如果你对图片感觉更舒服,那就是

Array of a Split result

其中a已设置为Array(Split("value1, value2", ","))

由您了解程序如何存储数据,但您可以考虑删除对Array函数的调用。