2017-02-21 53 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")