我想将 c 列中的值复制到 d 列中。但是,列 c 值使用“=EvaluateString(A1)”来获取值。当我尝试使用此代码复制单元格值时
Dim lastRow As Long
lastRow = Worksheets("Data").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Data").Range("C1:C" & lastRow).Copy Destination:=Sheets("Data").Range("D1:D" & lastRow)
Range("D1:D" & lastRow).NumberFormat = @
无法复制数据。 D 列中的大多数单元格值变为 0。我尝试手动复制这些值,但它也变为零。我尝试研究网络,但没有任何类似的问题可供我自己调试。
答案 0 :(得分:0)
无需复制和粘贴。看看这是否有帮助?
With Sheets("Data")
.Range("D1:D" & lastRow).NumberFormat = @
.Range("D1:D" & lastRow).Value = .Range("C1:C" & lastRow).Value
End With
答案 1 :(得分:0)
要执行“标准”复制/粘贴以外的任何操作(即,当您仅使用 Range.Copy Destination:=
时,这与您仅在键盘上使用 Ctrl+C、Ctrl+V 有效相同),您需要使用单独的“复制”和“粘贴特殊”命令。
例如
With Worksheets("Data_Column_RevAA")
.Range("C1:C" & lastRow).Copy
.Range("D1:D" & lastRow).PasteSpecial Paste:=xlPasteValues
End With
“PasteSpecial”命令接受控制其行为的不同参数(就像您通过 Excel UI 使用“Paste Special”一样) - 例如。粘贴数值、公式、格式等,以及数学运算(加、减等)
作为参考,请参阅 MS 文档: https://docs.microsoft.com/en-us/office/vba/api/excel.range.pastespecial