2017-05-03 1 views
1

VBA에서 사용할 수있는 3 개의 다른 하위가 있고 고유 한 하위 사용 단추에서 해당 하위를 호출하려고합니다. 하위 중 하나를 조건에 따라 호출해야하지만 하위가 호출되지 않습니다!셀 값을 기준으로 하위 호출

Sub rush_hour() 
    If Range("B2").Value = "Greater Than" Then 
     Call call_rus_greater 
    ElseIf Range("B2").Value = "Less Than" Then 
     Call call_rus_less 
    ElseIf Range("B2").Value = "Equals" Then 
     Call call_rus_equals 
    End If 
End Sub 
+0

셀 B2에 다른 것이있을 수 있습니다. B2에 무엇이 있습니까? 또한 호출 된 서브의 하나를 공유하십시오. 지금까지 제공된 정보를 통해 문제가 무엇인지 파악하기 란 쉽지 않습니다. – Tehscript

+0

B2는 "보다 큼", "미만"및 "같음"이 포함 된 드롭 다운입니다 –

+0

워크 시트에 범위를 완전히 한정해야합니다. 방법을 보려면 [VBA 모범 사례 - 절대 워크 시트를 사용하지 마십시오] (http://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/9218/never-assume-the-worksheet)를 읽어보십시오. –

답변

3

대문자 사용은 코드에있는 것과 다를 수 있습니다. 드롭 다운에 어딘가에 아무 것도 나타나지 않거나 Range ("B2")가 지정된 시트가 하위를 호출 할 때 활성 시트가 ​​아닐 가능성이 있습니다. 이러한 모든 가능성은 아래 코드에서 제거됩니다.

Sub rush_hour() 

    Select Case Trim(LCase(ActiveSheet.Range("B2").value)) 
     Case "greater than" 
      call_rus_greater 
     Case "less than" 
      call_rus_less 
     Case "equals" 
      call_rus_equals 
     Case Else 
      MsgBox "Unexpected value in cell B2" 
    End Select 
End Sub 
+0

@Peh oops, 나는 내 시력이 예전과 다르다고 생각한다;) –

관련 문제