Excel VBA PasteSpecial与xlPasteSpecialOperationAdd无法正常工作

时间:2017-03-08 13:11:35

标签: excel excel-vba excel-formula vba

我试图获取使用宏录制器生成的代码。我使用的电子表格中有一些列只应包含数字或日期,但由于某种原因,某些值存储为文本。

为了解决这个问题,我决定将0复制并粘贴到所有这些单元格中。如果我手工完成,它可以正常工作。所以,我启动了Excel宏录制器来获取代码。我对生成的代码进行了一些修改,只是为了使它更具可读性和干净性,但实际上,原始代码和我的版本都没有工作。

代码如下:

Range("F1").Value = 0
Range("F1").Copy
Set rngPaste = Range(Range("D3:E3"), Range("D3:E3").End(xlDown))
rngPaste.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationAdd, 
                                             _ SkipBlanks:=False, Transpose:=False
Set rngPaste = Range(Range("G3:J3"), Range("G3:J3").End(xlDown))
rngPaste.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationAdd, 
                                             _ SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

为什么这不起作用?

提前致谢!

1 个答案:

答案 0 :(得分:0)

而不是添加零尝试此(它适用于我的测试)

With Range(Range("D3:E3"), Range("D3:E3").End(xlDown))
    .Value = .Value2
End With
With Range(Range("G3:J3"), Range("G3:J3").End(xlDown))
    .Value = .Value2
End With