vba - Excel 宏可复制、删除和粘贴,而不会丢失复制值

标签 vba 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

考虑到我无法先清除内容,有没有办法存储 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/

相关文章:

c# - Excel 2013 - 1004 运行时错误刷新查询表BackgroundQuery :=False

vba - 嵌套集合

ms-access - 如何将单选按钮的值从 1、2、3 等更改为文本值?

vba - 将范围从 Excel 粘贴到 PowerPoint,同时保持格式设置

JAVA Apache POI 自定义格式

excel - 输入框中的浏览按钮查找文件 Excel2007 Vba

excel - $(美元符号)相当于结构化符号(Excel 工作表表)

excel - 创建从日期 x 开始到日期 y 结束的单元格

c# - 在 C# 中使用 Excel 将单元格值传输到二维字符串数组

vba - ActiveX控件转图片(Excel/VBA)