Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel日期格式发布(00/01/1990)_Excel_Vba_Date - Fatal编程技术网

Excel日期格式发布(00/01/1990)

Excel日期格式发布(00/01/1990),excel,vba,date,Excel,Vba,Date,我只是想把0(实际上是日期格式=00/01/1990)替换成N.A 所以我录制了宏。我在不同的文件中检查了该宏,但它不能正常工作。如果我为每个单元格单击F2,然后尝试重新运行宏,则宏工作正常。任何其他跳过的方法都可以在每个范围内按F2键(有上千个范围)。。例如,当我运行下面的宏时,如果A1、B1、A2和B2的值为00/01/1900,则其工作不完美。。然后我试着再次按F2键重新运行宏,然后它就可以正常工作了 代码: Range("A1").Select Range(Selection, Sel

我只是想把0(实际上是日期格式=00/01/1990)替换成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

如果您试图在整个工作表中替换,那么您可以使用它,而不是每次都定义范围

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

如果您试图在整个工作表中替换,那么您可以使用它,而不是每次都定义范围

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

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

你看到的日期实际上是零,对吗?您可以在一个单独的列中的公式中测试和处理这些单元格(如果您不希望自动化此解决方案)

例如,如果您的日期在A列中,这也是您看到“00/01/1900”的地方,就像在B列中添加公式一样。类似于:

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

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

首先,我认为Siddharth Rout的答案可能是您想要的,但这可能也有帮助

你看到的日期实际上是零,对吗?您可以在一个单独的列中的公式中测试和处理这些单元格(如果您不希望自动化此解决方案)

例如,如果您的日期在A列中,这也是您看到“00/01/1900”的地方,就像在B列中添加公式一样。类似于:

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

然后,您可以复制B列中的结果,并将其值粘贴到A列中——有效地将0变为N/A。

您是否在第一列中得到更改的结果,而不是其他列?1900年1月00日不是我所知道的日期,但替换似乎在您提供的代码中起作用。如果您的数据中有一个空格,xlDown和xlRight可能无法选择您期望的内容。或者,您的代码是否看到了任何结果?测试您的范围MsgBox(Selection.End(xlToRight.Address))是否选择了您期望的内容?您是否在第一列中看到了更改的结果,但其他列没有更改?1900年1月00日不是我所知道的日期,但替换似乎在您提供的代码中起作用。如果您的数据中有一个空格,xlDown和xlRight可能无法选择您期望的内容。或者,您的代码是否有任何结果?测试您的范围MsgBox(Selection.End(xlToRight.Address))是否选择了您期望的内容?