为什么VBA函数“split”返回一个2维数组,而不是1维数组?

当我使用函数split将一个string分解成一个数组时,我得到2个不同的结果。

如果我在代码中键入string返回是一维数组-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。 在上面的“行”代码行是范围暗淡

它可能看起来很愚蠢,但我尝试了这种方式,并没有奏效

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

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

Split函数返回一个数组。
Array函数使用可变数量的参数并将其排除在外。

所以在这两种情况下,你正在用一个本身就是一个数组的元素来创build一个数组
如果你对照片更舒服,就是这样

分组结果的数组

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


知道您的程序如何存储数据取决于您,但是您可以考虑删除对Array函数的调用。