Arrays VBA-仅从数组中粘贴特定列

Arrays VBA-仅从数组中粘贴特定列,arrays,vba,excel,Arrays,Vba,Excel,根据我最近提出的一个问题,我创建了一个数组,将数据从一个工作表复制到另一个工作表。我的问题是,该数组包含许多新工作表中不需要的列 x = Sheets("Sheet1").Range("A1048576").End(xlUp).Row Set my_range = Sheets("Sheet1").Range("A2:AM" & x) DirArray = my_range Sheets("Sheet2").Select Set Destination = Range("A3") D

根据我最近提出的一个问题,我创建了一个数组,将数据从一个工作表复制到另一个工作表。我的问题是,该数组包含许多新工作表中不需要的列

x = Sheets("Sheet1").Range("A1048576").End(xlUp).Row
Set my_range = Sheets("Sheet1").Range("A2:AM" & x)
DirArray = my_range

Sheets("Sheet2").Select

Set Destination = Range("A3")
Destination.Resize(UBound(DirArray, 1), UBound(DirArray, 2)).Value = DirArray
这段代码复制数组中的所有数据,但我只需要数组中的特定列。我如何才能得到A:E,AA,L,M:K列


感谢您的帮助。提前感谢。

如果您打算使用阵列,那么以下几点可能会有所帮助:

Sub foo()
    Dim ColumnAarray() As Variant
    Dim my_Arange As Range
    LastRow = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row

    'Get one column's data
    Set my_Arange = Sheets("Sheet1").Range("A2:A" & LastRow) ' get specific column
    ReDim ColumnAarray(LastRow) 'Re size your array to fit data
    ColumnAarray = my_Arange 'add data to array
    ''
    ''Repeat the process to copy more columns

    ''
    Set Destination = Sheet2.Range("A3")
    Destination.Resize(UBound(ColumnAarray, 1), UBound(ColumnAarray, 2)).Value = ColumnAarray 'add column A to Range A3 on Sheet2
End Sub
或者在粘贴数组值时,可以将其更改为仅粘贴原始范围中的特定列。。。例如:

Sub foo()
    Dim ColumnAarray() As Variant
    Dim my_Arange As Range
    LastRow = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row
    Set my_Arange = Sheets("Sheet1").Range("A2:AM" & LastRow) ' get specific range
    ReDim ColumnAarray(LastRow) 'Re size your array to fit data
    ColumnAarray = my_Arange 'add data to array

    For i = LBound(ColumnAarray) To UBound(ColumnAarray)
        Sheet2.Range("A" & i) = ColumnAarray(i, 1) 'paste first column from original range
        Sheet2.Range("B" & i) = ColumnAarray(i, 2) 'paste second column from original range into column B in Sheet 2
    Next i
End Sub

有很多方法,具体取决于你想做什么。您可以创建一个包含所需列的结果数组。根据您是要将结果连续放置,还是将结果放置在与原始结果相同的列中,您可能需要多个数组。或者您可以做一些定时测试,看看四个相关的复制/粘贴操作是否可以运行得更快,然后改用它。