2014-10-15 2 views
0

특정 텍스트를 찾아 바꾸는 if-then 문을 내 vba 코드에 통합하는 방법에 대한 도움을 얻고 싶습니다.VBA IF/THEN 찾기 및 바꾸기

내 상황에 숫자의 집합이 있습니다 : 8815, 0815, 1234 & 5678 그리고 현재 코드는 "815"를 찾아서 '0815'로 바꾸어 앞에 오는 0을 잃지 않도록합니다. 궁극적으로 내 문제는 0815 숫자 집합에서 올바르게 실행되는 replace 문이며 8815 숫자 집합에서 실행 중입니다.

"8815, 8815가 아니라 번호에"815 "가 없으면 번호를 변경하지 말고 어떻게 말할 수 있습니까?

Columns("H").Replace What:="815", Replacement:="'0815", SearchOrder:=xlByColumns 

저는이 문제에 도움을 주신 데 대해 감사드립니다. 몇 시간 동안 살펴 보았으며 너무 많이 발견하지 못했습니다.

+0

열을 텍스트로 포맷 할 수 있습니까? – mrbungle

+0

열을 사용자 정의 '0000'으로 포맷 할 수 없으므로 필요에 따라 앞에 0이 오는 4 자리가 항상 표시되도록 하시겠습니까? – tigeravatar

+0

일반적으로 할 수 있지만 셀에 적용한 서식 지정 변경 사항을 덮어 쓰는 웹 쿼리에서 데이터를 가져옵니다. – MatTtT

답변

2

인수를 사용하십시오. LookAt:=xlWhole 이것은 셀의 값이 찾고있는 값과 정확히 일치하는 경우에만 바뀝니다. 배리에 의해 제안

+0

이것은 완벽하게 작동했습니다! 감사! :) – MatTtT

0

, 그것은해야한다 :

열 ("H : H"). 무엇을 바꾸 = "815"대체 = " '0815"를 바라 : = xlWhole

IF 문을 사용하려면 다음과 같아야합니다.

Sub test() 

    Dim rngColumn  As Range 
    Dim rngCell   As Range 

    Set rngColumn = Worksheets("Sheet1").Columns("H") 
    For Each rngCell In rngColumn.Cells 
     If Trim(rngCell) <> "" Then 
      If Trim(rngCell) = "815" Then 
       rngCell.Value = "'0815" 
      End If 
     End If 
    Next rngCell 

    Set rngColumn = Nothing 
    Set rngCell = Nothing 

End Sub