我注意到两者之间的一个区别是Worksheet.Paste
会复制对象(图表,按钮等),而Range.PasteSpecial xlPasteAll
似乎不会这样做。还有其他差异吗?这种差异有一个很好的解释吗?因此,如果我想复制和粘贴对象/控件以及单元格,我是否必须Worksheet.Paste
?令人讨厌的是,您必须激活该工作表并选择目标单元格。还是有更好的方法?谢谢!
答案 0 :(得分:4)
您可以操作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
作为范围对象的方法实现其目的,并让其他对象执行相同的操作,就像我们上面所做的那样,我们真的不需要使用选择或激活。简而言之,只需使用对象的属性和方法即可单独使用对象。