2017-10-20 154 views
0

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

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 

希望能得到您的帮助。


我试过使用联合,但不能拿出解决方案。这里是我现在的代码

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

+0

请在此处填写完整的错误。 –

+0

'Cells(Rows.Count,“I”,“AD”)。End(xlUp).Row' This is invalid。 'Cells'只需要2个参数。它可以是“Cells(Rows.Count,”I“)”或“Cells(Rows.Count,”AD“)”。 – L42

+0

为什么你的代码中的第一行?下一行代替它。 ...如果可能的话,您应该始终完全限定对象属性和方法...使用'Range(“G3”)。Copy'代替第2行和第3行 – jsotola

回答

0

下面的代码假定表(“工作表Sheet”)具有片代号“Sheet 1中”,以及用于表Sheet 3类似。 (通常你应该在代码中使用表单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) 
+0

在Sheet1.Range(“D10:D12,D15,D22,D25,D32:D33,D38:D42,D47:D50,D53,D55,D57,D63”)的范围内可以在此处添加单元格吗?并且在这个代码中将在sheet3中粘贴数据?它会被粘贴在“我”吗? –

相关问题