Excel日期格式问题(00/01/1990)

时间:2012-07-03 03:20:00

标签: excel vba date excel-vba

我只是试图将0(实际上是日期格式= 00/01/201)替换为N.A

所以我录制了宏。我在不同的文件中检查了该宏,但它无法正常工作。如果我为每个单元格单击 F2 ,那么我尝试重新运行宏,然后它正常工作。任何其他跳过的方法都会按每个范围按 F2 (其中有数千个范围)..例如,当我运行下面的宏时,A1,B1,A2和B2有00/01/1900不完美工作..然后我试着再次按 F2 重新运行宏..然后它运作良好

代码:

Range("A1").Select

Range(Selection, Selection.End(xlDown)).Select

Range(Selection, Selection.End(xlToRight)).Select
Selection.Replace What:="00/01/1900", Replacement:="N/A", LookAt:=xlPart _
    , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
Range("AW1").Select

2 个答案:

答案 0 :(得分:4)

如果您尝试替换整个工作表,那么您可以使用此代替每次定义范围

Sub Sample()
    With Sheets("Sheet1")
        .Cells.Replace What:="00/01/1900", Replacement:="N/A", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    End With
End Sub

答案 1 :(得分:0)

首先,我认为Siddharth Rout的答案很可能就是你想要的,但也许这也有帮助吗?

你看的日期确实是零,对吗?您可以在单独的列中测试和处理公式中的这些单元格(即如果您不打算自动执行此解决方案)。

例如,如果你的日期在A栏,那么你也可以看到“00/01/1900”,就像在B栏中添加一个公式一样:

=IF(A1=0, "N/A", A1)

然后,您可以将结果复制到B列,并将其特殊值粘贴到A列上 - 有效地将您的0变为N / A..