将数组复制到单元格

时间:2011-10-25 19:41:21

标签: vba

我目前有一个充满数据的数组,我想一直传输到单元格G2,直到整个数组耗尽。我当前的电子表格包含G1中的数据,但没有数据。

我有以下代码,但它不能正常工作,因为我收到错误:

应用程序定义或对象定义的错误。

帮助解决这个问题会很棒。如果您能告诉我我的代码有什么问题以及如何解决它而不是为我提供替代配方,我将不胜感激。

For i = 1 to nFlights
     With Worksheets("Q2").Range("G1")
           .End(xlDown).Offset(1, 0) = Origin(i)
    End With
Next

2 个答案:

答案 0 :(得分:8)

我知道你不想显示代码,但这是与你的循环不同的方法:

Dim arr
arr = Array("one","two","three","four")

ActiveSheet.Range("G2").Resize((UBound(arr) - LBound(arr)) + 1, 1).Value = _
                                  Application.Transpose(arr)

答案 1 :(得分:0)

offset属性只引用单元格(在您的情况下),一个位于作为调用基础的单元格下方(“G1”)。为了将整个数组orgin复制到工作表上的G列,请尝试:

Dim i As Integer
i = 2

For Each val As String In Origin
    With Worksheets("Q2")
       .Cells(i, 7).Value = Origin(i)
       i = i + 1
    End With
Next