Arrays 在VBA中仅粘贴二维数组的特定索引

Arrays 在VBA中仅粘贴二维数组的特定索引,arrays,vba,excel,Arrays,Vba,Excel,我有一个2天的数组,如下所示: myArray(1 to 100, 1 to 3) 我粘贴数组的常规方法如下所示: With ActiveWorkbook.Worksheets("Semesters") If IsEmpty(.Range("A2")) Then .Activate .Range("A2", "C2").Resize(UBound(myArray)).Value = myArray Else .Activate .Range("A1").End

我有一个2天的数组,如下所示:

myArray(1 to 100, 1 to 3)
我粘贴数组的常规方法如下所示:

With ActiveWorkbook.Worksheets("Semesters")

If IsEmpty(.Range("A2")) Then
    .Activate
    .Range("A2", "C2").Resize(UBound(myArray)).Value = myArray
Else
    .Activate
    .Range("A1").End(xlDown).Offset(1, 0).Activate
    Range(ActiveCell, ActiveCell.Offset(0, 2)).Resize(UBound(myArray)).Value = myArray
End If

End With

但这会粘贴整个阵列。我想粘贴所有第一维度,但只粘贴第二维度索引2和索引3处的值。在不创建另一个过滤维度2的索引1的数组的情况下,是否可以做到这一点?如果可以,如何做到?

一步不能做到这一点,但可以分两步做到

.Range("A2").Resize(UBound(myArray, 1)) = application.index(myArray, 0, 2)
.Range("C2").Resize(UBound(myArray, 1)) = application.index(myArray, 0, 3)

检查我认为应该是
应用程序.工作表函数.索引(myArray,0,2)
。否则它将只返回第一个元素。我不知道,我运行了代码,它将单个第二个列的所有第一个列元素放入我的目标。是的,也运行相同的代码,只在目标单元格上获取所有第一个元素。我所做的是:
.Range(“A2”).Resize(UBound(myArray,1))=application.index(myArray,Evaluate)(“ROW(1:&UBound(myArray,1)&”)”),2)
让它工作起来。不管怎样,如果它对OP有效,那就不用担心了;)感谢@sktneer的确认。从他/她的角度来看,L42可能是正确的;我们正在处理来自两个不同方面的两组不同数据,因为OP根本没有提供任何数据来支持他/她的主张。谢谢大家,这非常有用。是否有任何方法可以执行类似于
range=application.index(myArray,0,2-3)
的操作?