Excelmacros复制,删除和粘贴,而不会丢失复制值
我试图粘贴一些我之前复制的值,但是我正在丢失数据,因为我正事先清除目标单元格。
这是代码的一个例子:
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
考虑到我不能先清除内容,有没有办法将Range(“A1:B3”)的内容存储起来,以便以后粘贴?
显而易见的答案是:以其他顺序进行。 也没有必要使用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
如果由于某种原因(?),只能在…之后清除内容。您可以将值存储在像这样的variables中
With ThisWorkbook.Worksheets("Sheet1") Dim v as Variant v = .Range("A1:B3").Value .Range("C1:D3").ClearContents .Range("C1:D3").Value = v End With
您可以事先在其他地方粘贴该范围。
Range("A1:B3").Copy Range("F1") Range("C1:D3").ClearContents Range("F1:G3").Cut Range("C1")