Arrays 如何在vba中高效分割二维阵列

Arrays 如何在vba中高效分割二维阵列,arrays,vba,Arrays,Vba,是否有更好的内置解决方案将Nx2阵列拆分为2个Nx1阵列,而不仅仅是在原始阵列中循环并一次分配一个阵列值? 比……更奇特的东西 Dim xvalues as Variant Dim yvalues as Variant ReDim xvalues(1 To UBound(arr2d)) ReDim yvalues(1 To UBound(arr2d)) For i=1 To UBound(arr2d) xvalues(i) = arr2d(i, 1) yvalues(i) = a

是否有更好的内置解决方案将Nx2阵列拆分为2个Nx1阵列,而不仅仅是在原始阵列中循环并一次分配一个阵列值? 比……更奇特的东西

Dim xvalues as Variant
Dim yvalues as Variant
ReDim xvalues(1 To UBound(arr2d))
ReDim yvalues(1 To UBound(arr2d))
For i=1 To UBound(arr2d)
    xvalues(i) = arr2d(i, 1)
    yvalues(i) = arr2d(i, 2)
Next i

这回答了你的问题吗@omegastripes回答了我99%的问题。我想补充一点,在我的例子中需要添加
.Value2
xvalues=Application.WorksheetFunction.Index(arr2d,0,1).Value2
,可能是因为
arr2d
是一个
范围,而
xvalues
不是。