回复:。复制和粘贴在Excel VBA中

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

相反,我有

 Cells(i,j).Select ActiveSheet.Paste 

哪个工作,但是为什么?

因为.Paste必须被应用到一个SheetObject(正如你写的: ActiveSheet.Paste

查看MSDN上的方法。 必须采用以下方式:

 Worksheets("Sheet1").Range("C1:C5").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range("D1:D5") 

或者更短时间:

 Cells(j,i).Copy Destination:=Cells(y,z) 

或者使用PasteSpecial – 方法。 它可以应用于范围对象:

 With sheet .Range("C1:C5").Copy .Range("D1:D5").PasteSpecial Operation:=xlPasteSpecialOperationAdd End With 

你不必告诉它粘贴,例如,如果你有为i和j设置的variables,那么你可以使用它

 Range("A1").Copy Cells(i, j) 

你甚至可以根本不需要复制,比如:

 Cells(i, j)=Range("A1")