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

标签 vba excel

我注意到两者之间的一个区别是 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/

相关文章:

excel - 使用电子表格::SimpleExcel

vba - 无法在 Excel 中用 VBA 替换 Chr(160)

excel - 将参数传递给 AppleScriptTask

excel - 如何将多维excel表格转换为一维?

vba - 在VBA中的子例程中捕获编译错误

excel - 根据先前列中的下拉列表使列成为强制性列

excel - 基于行中每个单元格的引用单元格值的条件格式

regex - vba中修剪前导和尾随空格的函数

vba - 如何锁定剪贴板或避免在 MS Excel 中使用它?

Python Excel 图表类型 pywintypes.com_error