2013-05-13 2 views
1

이 매크로는 모든 셀에서 문자열 "%"을 식별하고 존재하는 경우 노란색으로 표시하여 식별합니다. 흥미롭게도형식 불일치, 기능 코드

실제로 작동합니까,하지만 난 라인에 특정 유형 불일치 오류 후서가 계속 :

If InStr(rngCell.Value, "%") > 0 Then 

이 아래에있는 내 전체 코드가

를이된다

Public Sub Markerrorvalues() 

Dim iWarnColor As Integer 
Dim rng As Range 
Dim rngCell As Variant 
Dim LR As Long 
Dim vVal 
Dim tRow 

LR = Cells(Rows.Count, "B").End(xlUp).Row 

Set rng = Range("C1:C" & LR) 
iWarnColor = xlThemeColorAccent2 

For Each rngCell In rng.Cells 
    tRow = rngCell.Row 
    If InStr(rngCell.Value, "%") > 0 Then 
     rngCell.Interior.ColorIndex = iWarnColor 
    Else 
     rngCell.Interior.Pattern = xlNone 
    End If 
Next 

End Sub 

이 어떤 도움을 주시면 감사하겠습니다 !

+0

그것을 복제 시도했지만를 ... 오류없이 원활하게 실행됩니다./언제 오류가 발생합니까? – Davide

+1

그래, 나를 위해 예상대로 작동합니다. 실행중인 데이터의 예를 들어 줄 수 있습니까? –

+0

아래 행의 특정 양을 제거하면 작동하는 것처럼 보입니다. C 행에 불행한 것이 있습니다. If InStr (rngCell.Value, "%")> 0 Then – user1717622

답변

1

아마 당신은 오류 값 일부 세포 (예를 들어 #REF!, #DIV/0! 등)

, 이러한 필터링 Not IsError 조건 내부에 귀찮은 코드를 포장해야합니다 :

If Not IsError(rngCell.Value) Then 
    If InStr(rngCell.Value, "%") > 0 Then 
     rngCell.Interior.ColorIndex = iWarnColor 
    Else 
     rngCell.Interior.Pattern = xlNone 
    End If 
EndIf 
+0

확장 할 수 있습니까? 여전히 중첩 된 문법이 확실하지 않습니다. – user1717622

+1

@ user1717622 : chris '대답은 맞습니다. 나는 너를 위해 그것을 조금 분명히했다. –