将多个范围从工作表复制到另一个工作表

时间:2017-10-20 03:01:22

标签: vba excel-vba copy paste excel

我试图将多个单元格从一个工作表复制到另一个工作表。我收到错误消息错误的参数数量或无效的属性赋值。

Range("D10:D12,D15,D22,D25,D32:D33,D38:D42,D47:D50,D53,D55,D57,D63").Select
Range("G3").Select
Selection.Copy
Sheets("Sheet3").Select
'Range("I4").End(xlUp).Select
lMaxRows = Cells(Rows.Count, "I", "AD").End(xlUp).Row
Range("I", "AD" & lMaxRows + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True
Sheets("Sheet1").Select
Range("I4", "AD").Select

希望得到你的帮助。

我尝试使用union但无法提出解决方案。这是我现在的代码

Dim r1 As Range, r2 As Range, multiRange As Range

Set r1 = Sheets("Sheet1").Range("D10:D12,D15,D22,D25,D32:D33,D38:D42,D47:D50,D53,D55,D57,D63")
Set r2 = Sheets("Sheet1").Range("G3")
Set multiRange = Union(r1, r2)
Application.Union(r1, r2).Select
Selection.Copy
Sheets("Sheet3").Select
'Range("I4").End(xlUp).Select
lMaxRows = Cells(Rows.Count, "I").End(xlUp).Row
Range("I" & lMaxRows + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True
Sheets("Sheet1").Select
Range("I4").Select

错误消息我知道得到的是该命令不能用于多个选择。 突出显示的代码是SELECTION.COPY

1 个答案:

答案 0 :(得分:0)

下面的代码假设表格(" Sheet1")具有表格CodeName" Sheet1",以及Sheet3的相似表格。 (通常,您应该在代码中使用表CodeName。)

Dim SourceArea As Range
Dim TargetArea As Range
Dim CopyRange As Range

Set CopyRange = Sheet1.Range("D10:D12,D15,D22,D25,D32:D33,D38:D42,D47:D50,D53,D55,D57,D63")

For Each SourceArea In CopyRange.Areas
    Set TargetArea = Sheet3.Range(SourceArea.Address)
    TargetArea.Value = SourceArea.Value
Next

编辑:上面将在Sheet3中粘贴与Sheet1中的范围完全相同的位置。如果要粘贴到其他位置,请使用“偏移”。例如,如果您希望目标中的左上角单元格为I20,则:

Set TargetArea = Sheet3.Range(SourceArea.Address).Offset(10,5)