为什么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
函数的调用。