2017-02-21 5 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 

、範囲(「B3 A1」)のコンテンツを格納する方法があります後で?

答えて

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") 
関連する問題