2014-06-19 6 views
0

왜 컴파일 오류가 발생하고 Else Without If가 발생했는지 확신 할 수 없습니다. 오류는 ElseIf 행에 있습니다. 다른 모든 것은 작동하는 것 같습니다. 어떤 제안?Else without Compilation Error

If IsEmpty(Me.ComboBox15.Value) = False Then 
    strFind = Me.ComboBox15.Value 'what to look for 
    With Ws.Range("cGroup") 'where to look 
    Sheet2.ListObjects("Table1").Range.AutoFilter Field:=1, Criteria1:=ComboBox15.Value 
    Set c = .Find(strFind, LookIn:=xlValues) 
     'c.Select 
     If Not c Is Nothing Then 
      With Me 
       .ComboBox15.Value = c.Offset(0, 0).Value 
       .ComboBox16.Value = c.Offset(0, 1).Value 
       .ComboBox17.Value = c.Offset(0, 2).Value 
       .ComboBox1.Value = c.Offset(0, 3).Value 
       .ComboBox19.Value = c.Offset(0, 4).Value 
       r = c.Row 
       f = 0 
      End With 
      FirstAddress = c.Address 
     Else: MsgBox strFind & "Not listed" 'search failed 
     End If 
ElseIf IsEmpty(Me.ComboBox16.Value) = False Then 
    strFind = Me.ComboBox16.Value 'what to look for 
     With Ws.Range("cGeography") 'where to look 
     Sheet2.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:=ComboBox16.Value 
     Set c = .Find(strFind, LookIn:=xlValues) 
      'c.Select 
      If Not c Is Nothing Then 
       With Me 
        .ComboBox15.Value = c.Offset(0, -1).Value 
        .ComboBox16.Value = c.Offset(0, 0).Value 
        .ComboBox17.Value = c.Offset(0, 1).Value 
        .ComboBox1.Value = c.Offset(0, 2).Value 
        r = c.Row 
        f = 0 
       End With 
       FirstAddress = c.Address 
      Else: MsgBox strFind & "Not listed" 'search failed 
      End If 
     End With 
ElseIf Not IsEmpty(Me.ComboBox17.Value) Then 
      strFind = Me.ComboBox17.Value 'what to look for 
      With Ws.Range("cDept") 'where to look 
      Sheet2.ListObjects("Table1").Range.AutoFilter Field:=3, Criteria1:=ComboBox17.Value 
      Set c = .Find(strFind, LookIn:=xlValues) 
       'c.Select 
       If Not c Is Nothing Then 
        With Me 
         .ComboBox15.Value = c.Offset(0, -2).Value 
         .ComboBox16.Value = c.Offset(0, -1).Value 
         .ComboBox17.Value = c.Offset(0, 0).Value 
         .ComboBox1.Value = c.Offset(0, 1).Value 
         r = c.Row 
         f = 0 
        End With 
        FirstAddress = c.Address 
       Else: MsgBox strFind & "Not listed" 'search failed 
       End If 
      End With 


Else: MsgBox "Error" 
End If 

모든 서식/들여 쓰기 오류에 사과드립니다. 나는 VBA에 새로운 브랜드입니다. 나는 그 해답을 찾았지만, 내가 발견 한 모든 것은 이것처럼 보였다.

답변

0

이있는 With 블록 이유는 다음과 같습니다.이 배치되어 최종면 없음 C가 아무것도없는 경우로 시작하는 블록을 폐쇄해야한다는

+0

If 블록 내에서 종료되지 않습니다

With Ws.Range("cGroup") 'where to look 

그런 다음 (미안하지만 형식을 지정하는 방법을 알 수 없습니다). 나는 그것을 위해 제거하려고 노력했지만, 나는 여전히 같은 오류가 발생합니다. @ Soren – aearce2000

+0

당신이 옳습니다. 그건 아니야. 나는 나의 대답을 업데이트했다. –

+0

그랬어 !! 정말 고맙습니다!! – aearce2000