我注意到两者之间的一个区别是 Worksheet.Paste
会复制对象(图表、按钮等),而 Range.PasteSpecial xlPasteAll
似乎不会这样做那。还有其他区别吗?对于这种差异有很好的解释吗?因此,如果我想将对象/控件与单元格一起复制并粘贴,我是否必须执行 Worksheet.Paste
?令人烦恼的是,您必须激活该工作表并选择目标单元格。或者有更好的方法吗?谢谢!
最佳答案
您可以操作 Excel 中的任何对象(图表、形状、控件等)。
建议始终直接在对象上进行操作。请考虑以下内容。
Dim sh As Shape
Set sh = Sheet1.Shapes("Oval 1")
sh.Copy
With Sheet2
.Paste .Range("A1")
End With
在上面的示例中,您想要将 Sheet1 中的形状 - 椭圆形 1 复制到 Sheet2 单元格 A1。
因此,我们所做的就是获取 Shape 对象并使用它的方法来执行我们想要的操作。
因此,让 Range.PasteSpecial
作为 Range 对象的方法发挥其作用,并让其他对象像我们上面所做的那样执行相同的操作,而我们实际上不需要使用 Select 或 Activate 。简而言之,使用对象的可用属性和方法分别处理对象。
关于vba - Worksheet.Paste 和 Range.PasteSpecial 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31849941/