Worksheet.Paste和Range.PasteSpecial之间的区别

我注意到两者之间的一个区别是, Worksheet.Paste将复制对象(图表,button等),而Range.PasteSpecial xlPasteAll似乎并没有这样做。 还有其他的区别吗? 有什么不同的解释吗? 所以如果我想复制粘贴对象/控件和单元格,我必须做Worksheet.Paste ? 有什么恼人的是,你将不得不激活,并select目标单元格。 还是有更好的方法? 谢谢!

您可以在Excel中操作任何对象(图表,形状,控件等)。
总是直接在对象上工作是明智的。 考虑下面。

 Dim sh As Shape Set sh = Sheet1.Shapes("Oval 1") sh.Copy With Sheet2 .Paste .Range("A1") End With 

在上面的示例中,您想将Sheet1中的Shape-Oval 1复制到Sheet2单元格A1。
所以我们所做的就是获得Shape对象,并使用它的方法来执行我们想要的。

因此,让Range.PasteSpecial作为Range对象的方法的目的,让其他对象像上面我们不需要使用Select或Activate那样做 。 简而言之,使用对象的可用属性和方法分别处理对象。