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

时间:2018-01-10 01:44:50

标签: arrays excel vba excel-vba

我有一个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的数组的情况下完成,如果是,那么如何?

1 个答案:

答案 0 :(得分:3)

您无法一步完成此操作,但您可以在两个步骤中完成此操作。

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