我有下面的代码,它正在复制我的数据行并粘贴到新行中。
然后,它清除原始行中的数据,为下一次输入做好准备。
唯一的问题是,它删除了我所有的公式,尽管我已经在代码中说明了要清除哪些单元格。
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.Activate
与Range.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