2012-07-03 16 views
0

我只是試圖取代0(其實這是日期格式= 00/01/1990),以N.AExcel的日期格式問題(00/01/1990)

所以我已經錄製宏。我在不同的文件中檢查了該宏,但它無法正常工作。如果我爲每個單元點擊F2然後我嘗試重新運行宏然後它工作正常。任何其他方式跳過繼續按F2爲每個範圍(一千範圍在那裏)..如果A1,B1,A2和B2有00/01/1900當我運行下面的宏它不完美地工作..然後,我嘗試按F2每個細胞再次重新運行宏..then其運作良好

代碼:

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 
+0

您是否在第一列中獲得了更改的結果,但不是其他人? 00/01/1900不是我知道的日期,但替換似乎適用於您提供的代碼。可能是因爲數據中有空間,xlDown和xlRight沒有選擇您所期望的。或者你是否看到任何與你的代碼結果? – datatoo

+0

測試您的範圍MsgBox(Selection.End(xlToRight).Address)是否選擇您期望的? – datatoo

回答

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 
+0

謝謝Siddharth ..這種方式工作得很好.. :) –

0

首先,我認爲Siddharth Rout的答案可能是您要找的,但也許這也可能有幫助?

您正在查看的日期實際上是零,對不對?您可以在單獨的列中測試並處理公式中的單元格(即如果您不想自動執行此解決方案)。

例如,如果你的日期是在A列,而這正是你所看到的「00/01/1900」爲好,就像在列B.喜歡的東西添加一個公式:

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

然後,您可以複製B列中的結果並將其特殊值粘貼到列A上 - 有效地將您的0變爲N/A。