使用变量来定义2d数组

时间:2018-04-21 09:04:13

标签: arrays excel-vba vba excel

我想将数组的值粘贴到列中。 我在某处读过,如果我使用2D数组则不需要使用.Transpose。 我使用此代码

定义了一个变量LRow,其中包含列中的总行数



Windows("export").Activate
With Sheets("export")
    LRow = .Range("A" & .Rows.Count).End(xlUp).Row
End With




但似乎不可能用它来定义像这样的数组



Dim copyArray(1 To LRow, 1 To 1)
copyArray = Worksheets("export").Range("A1:A" & LRow).Value
Windows("import").Activate
Worksheets("Foglio1").Range("A2:A" & LRow + 1) = copyArray
End Sub




我认为这是因为使用此代码我定义了一个静态数组。

我有解决方案吗?

1 个答案:

答案 0 :(得分:1)

试一试,

dim copyArray as variant
with worksheets("export")
    copyArray = .range(.cells(1, "A"), .cells(.rows.count, "A").end(xlup)).value
end with
Worksheets("Foglio1").Range("A2").resize(ubound(copyArray, 1), ubound(copyArray, 2)) = copyArray

这对我来说总是有用,并且更具动态性,因为目标总是被重新整形以匹配来源。