2012-07-03 3 views
0

난 그냥 그래서 매크로를 녹음 한 공의 (사실은 날짜 형식에 =/01/1990 00) 엑셀 날짜 형식의 문제 (00/01/1990)

N.A

에 교체하려고합니다. 다른 파일에서 해당 매크로를 확인했지만 제대로 작동하지 않습니다. 각 셀에 대해 F2을 클릭하면 매크로가 다시 실행되어 정상적으로 작동합니다. 건너 뛰는 다른 방법은 각 범위 (1000 개의 범위가 있음)에 대해 F2을 계속 누르고 있습니다. 예를 들어 A1, B1, A2 및 B2가 00/01/1900 인 경우 아래 매크로를 실행하면 완벽하게 작동하지 않습니다. 당신은 전체 워크 시트에 교체하려는 경우

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

당신이 사용할 수 있습니다 : 그때는 잘 작동하는

코드 매크로 ..then 다시 실행 각 셀에 대해 F2을 눌러 다시 시도 매번 범위를 정의하는 대신

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로 바꿀 수 있습니다.