Re:.Copy和.Paste在Excel VBA中

Dan*_* A. 0 excel vba excel-vba

为什么在Excel VBA中复制单元格,形状等时ActiveSheet.Cells(i,j).Paste无效?

相反,我有

Cells(i,j).Select
ActiveSheet.Paste
Run Code Online (Sandbox Code Playgroud)

哪个有效,但为什么?

Kla*_*ter 5

因为.Paste必须应用于SheetObject(正如您所写的那样ActiveSheet.Paste):

查看MSDN上的方法.它必须以下列方式使用:

Worksheets("Sheet1").Range("C1:C5").Copy 
ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range("D1:D5")
Run Code Online (Sandbox Code Playgroud)

或者更快:

Cells(j,i).Copy Destination:=Cells(y,z)
Run Code Online (Sandbox Code Playgroud)

或者使用PasteSpecial -method.它可以应用于Range对象:

With sheet
    .Range("C1:C5").Copy 
    .Range("D1:D5").PasteSpecial Operation:=xlPasteSpecialOperationAdd 
End With
Run Code Online (Sandbox Code Playgroud)