调整范围以将数组值输入到工作表vba中

时间:2014-06-03 23:39:21

标签: arrays excel-vba resize range vba

如果我想获取一个数组并将其输入Excel工作表,我该怎么做?

如果我使用下面的代码,它们将进入错误的单元格(G5而不是F4)并切断数组的最后一列和一行。

我可以为每个调整大小维度添加1(这将为我提供所需的所有值),但数据仍然只在G5而不是F4中开始。如何从F4开始获取数据? (我已经从一个更大的电子表格中解决了这个问题,我不能简单地使用下一个单元格)。代码如下:

Public ArrayToPaste(4, 2) As Variant

Sub PasteTheArray()

Dim i, j As Integer

For i = 1 To 2
    For j = 1 To 4
        ArrayToPaste(j, i) = Cells(j, i).Value
    Next j
Next i

Range("F4").Resize(UBound(ArrayToPaste, 1), UBound(ArrayToPaste, 2)) = ArrayToPaste

End Sub

1 个答案:

答案 0 :(得分:2)

你非常接近:

Public ArrayToPaste(1 To 4, 1 To 2) As Variant

Sub PasteTheArray()
Dim i, j As Integer
For i = 1 To 2
    For j = 1 To 4
        ArrayToPaste(j, i) = Cells(j, i).Value
    Next j
Next i
Range("F4").Resize(UBound(ArrayToPaste, 1), UBound(ArrayToPaste, 2)) = ArrayToPaste

End Sub

只需使ArrayToPaste 从1开始而不是从0开始。