2017-02-16 4 views
1

Excel VBA를 처음 사용하는 사람입니다.이 매크로가 첫 번째 매크로이므로, 분명한 실수를 저도 용서해주십시오. 워크 시트와 비교할 코드가 있고 일치하는 것이 발견되면 시트 중 하나에 노트를 작성하는 코드가 있습니다. 오류없이 실행되지만 변경 사항이 적용되지 않습니다. 내가 잘못한 곳을 볼 수는 없다. 도움에 미리 감사드립니다.Excel VBA - 매크로가 실행되지만 아무런 효과가 없습니다.

Sub invalid() 

Dim i As Integer 
Dim j As Integer 

Dim main As Worksheet 
Dim invalid As Worksheet 

i = 2 
Set main = ThisWorkbook.Worksheets(1) 
Set invalid = ThisWorkbook.Worksheets(2) 

Do 
    j = 2 
    Do 
     If LCase$(invalid.Cells(i, 1).Value) = LCase$(main.Cells(j, 13).Value) Then 
      main.Cells(j, 14).Value = "Invalid Email" 
     End If 
     j = j + 1 
    Loop While main.Cells(j, 2) = Not Null 
    i = i + 1 
Loop While invalid.Cells(i, 2) = Not Null 


End Sub 
+1

'main.Cells (J, 2)''Null' 수 없을 것입니다. 당신은'빈'을 생각하고 있습니까? – Comintern

+0

해결되었지만 문제가 해결되지 않았습니다 – IAntoniazzi

+0

어떻게 수정 했습니까? 코드에는 분명히 잘못된 점이 없으므로 루프 상태 또는 데이터입니다. – Comintern

답변

1

하는이 시도, 그것은 루프 중 하나를 제거합니다

Sub invalid() 

Dim i As Long 
Dim j As Long 
Dim lRow As Long 
Dim main As Worksheet 
Dim invalid As Worksheet 

Set main = ThisWorkbook.Worksheets(1) 
Set invalid = ThisWorkbook.Worksheets(2) 
lRow = main.Cells(main.Rows.Count, 13).End(xlUp).Row 

For i = 2 To lRow 
    j = 0 
    On Error Resume Next 
    j = Application.WorksheetFunction.Match(main.Cells(i, 13), invalid.Range("A:A"), 0) 
    On Error GoTo 0 
    If j > 0 Then main.Cells(i, 14) = "Invalid Email" 
Next i 

End Sub 
+0

그게 효과가! 고맙습니다! – IAntoniazzi

+0

이제 매치 (Match) 기능에 대해 읽어 볼 것입니다. 그래서 어떻게 한 번 반복했는지 이해할 수 있습니다! – IAntoniazzi

관련 문제