0

0(実際には日付形式= 00/01/1990)をNAに置き換えようとしています

だから私はマクロを記録しました。別のファイルでそのマクロを確認しましたが、正しく機能していません。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
4

2 に答える 2

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
于 2012-07-03T07:40:20.220 に答える
0

まず、Siddharth Routからの答えはおそらくあなたが探しているものだと思いますが、おそらくこれも役立つかもしれません。

あなたが見ている日付は本当にゼロですよね?別の列の数式でこれらのセルをテストして処理することができます(つまり、このソリューションの自動化を検討していない場合)。

たとえば、日付が列Aにあり、列Bに数式を追加するのと同じように、ここに「00/01/1900」も表示されているとします。

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

次に、結果を列Bにコピーし、それらの値を列Aに貼り付けることができます。つまり、0をN/Aに効果的に変換できます。

于 2012-07-03T12:27:20.533 に答える