2016-07-21 2 views
0

나는 programminging에서 새로운 오전, 내 질문은 지루한 경우 미안해.오류 13 간단한 찾기 및 바꾸기에서 VBA

I 셀 범위에 문자열 "시큰둥"확인하고

지금까지 내 코드 "BlahBlah"을 위해 위의 셀을 대체 매크로 만들려고 오전 :

Sub Findandreplace() 


Dim E As String, Wide As Range, R As Range 

E = "Meh" 

Set Wide = Range("A1:CM300") 

For Each R In Wide 

    If InStr(R.Value, "Meh") > 0 Then 
     R.Offset(-1, 0).Value = "BlahBLah" 

End If 

를이 처음 실행했을 때 작동했지만, 이제는 if 문에 오류 유형 13이 표시됩니다. 나는 무언가를 어둡게해야한다는 것을 알고 있지만, 무엇을 모르는지.

도움 주셔서 감사합니다.

+0

불일치가 있음 (# N/A처럼, #의 DIV/0!)

확인이있을 때 형의 잘못 오류를 일치 수 Instr은 문자열을 기대하지만 Variant (R.Value)를 지정합니다. 일반적으로 작동하지만 항상 그런 것은 아닙니다. CStr (R.Value)을 사용하여 항상 문자열로 만들 수 있습니다. – Mikegrann

+0

이 코드는 행 1에서 대상 문자열을 찾으면 작동하지 않습니다. 코드는 존재하지 않는 행 0에 대체 문자열을 쓰려고 시도하고 오류가 발생합니다. 검색 범위는 "A2 : CM300"이어야합니까? – barrowc

답변

2

아니요. Dim은 없습니다. 그런데 변수 이름은 끔찍합니다.

당신은 셀 값 자체가 오류 코드에서와 IsError

Sub test() 
Dim E As String, Wide As Range, R As Range 

E = "Meh" 

Set Wide = Range("A1:CM300") 

For Each R In Wide 

    '/ Check if the cell contains an error. 
    If Not IsError(R) Then 
     If InStr(R.Value, E) > 0 Then 
      R.Offset(-1, 0).Value = "BlahBLah" 
     End If 
    End If 
Next 


End Sub