2017-02-21 37 views
1

我试图粘贴一些我以前已经复制过的值,但因为我事先清除了目标单元格而丢失了数据。Excel宏复制,删除和粘贴,而不会丢失复制值

这是代码的一个例子:考虑到我不能首先清除内容

Range("A1:B3").Select 
Selection.Copy 
Range("C1:D3").Select 
Selection.ClearContents 'At this point the clipboard is cleared 
Range("C1").Select 
ActiveSheet.Paste 'I get an error here as the clipboard has been cleared 

,是否有存储区域的内容的方式(“A1:B3”),这样我可以粘贴它以后?

回答

4

显而易见的答案是:以其他顺序进行。也没有必要使用Select

Range("C1:D3").ClearContents 
Range("A1:B3").Copy Range("C1") 

此外,你应该尝试完全限定的范围。也就是说,正是这些范围所在的位置。

With ThisWorkbook.Worksheets("Sheet1") 
    .Range("C1:D3").ClearContents 
    .Range("A1:B3").Copy .Range("C1") 
End With 

如果由于某种原因(?)你只能清除后的内容...你可以在一个变量的值存储这样

With ThisWorkbook.Worksheets("Sheet1") 
    Dim v as Variant 
    v = .Range("A1:B3").Value 
    .Range("C1:D3").ClearContents 
    .Range("C1:D3").Value = v 
End With 
+1

“考虑到我不能先清除内容” –

+0

是的,我正在努力简化的例子。原始副本来自另一个打开的文件。 – Selrac

+0

抱歉失踪,我已更新 – CallumDA

0

你可以避开这个由事先在其他地方粘贴范围。

Range("A1:B3").Copy Range("F1") 
Range("C1:D3").ClearContents 
Range("F1:G3").Cut Range("C1")