我正在尝试粘贴之前复制的一些值,但由于我事先清除了目标单元格,所以我丢失了数据。
这是代码示例:
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
如果由于某种原因(?)您只能在...之后清除内容,您可以将您的值存储在这样的变量中
With ThisWorkbook.Worksheets("Sheet1")
Dim v as Variant
v = .Range("A1:B3").Value
.Range("C1:D3").ClearContents
.Range("C1:D3").Value = v
End With
关于vba - Excel 宏可复制、删除和粘贴,而不会丢失复制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42368951/