VBA代码在执行"复制粘贴"命令后将从单元格中删除公式



我有下面的代码,它正在复制我的数据行并粘贴到新行中。

然后,它清除原始行中的数据,为下一次输入做好准备。

唯一的问题是,它删除了我所有的公式,尽管我已经在代码中说明了要清除哪些单元格。

Sub CopyPaste()
Range("A9:Q9").Copy
Sheets("Raw data").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Range("A9:Q9").Select
Range("Q9").Activate

Selection.ClearContents
Range("A9").Select
Selection.ClearContents
Range("B9").Select
Selection.ClearContents
Range("L9").Select
Selection.ClearContents
Range("M9").Select
Selection.ClearContents
Range("P9").Select
ActiveWindow.ScrollColumn = 2
Range("A9").Select

End Sub

可能是明显得可笑的事情。

Range.ActivateRange.Select不同,但您应该同时执行;更改

Range("A9:Q9").Select
Range("Q9").Activate

Selection.ClearContents
Range("A9").Select
Selection.ClearContents
Range("B9").Select
Selection.ClearContents
Range("L9").Select
Selection.ClearContents
Range("M9").Select
Selection.ClearContents
Range("P9").Select
ActiveWindow.ScrollColumn = 2
Range("A9").Select

Range("Q9").ClearContents
Range("A9").ClearContents
Range("B9").ClearContents
... and so on

有关如何改进代码的详细讨论,请参阅如何避免使用Select。

您告诉它粘贴值。。。而不是公式。

尝试使用xlPasteAll而不是xlPasteValues

最新更新