2010-05-10 2 views
0

다음 절을 작성했습니다. 디버깅 할 때 첫 번째 사례는 알았습니다. 내 문제는 두 번째 사례와 관련이 있습니다. 오류를 입력하고 오류 메시지가 표시됩니다."사례 선택"문제

내가 뭘 잘못 했니? 모두에

Select Case Data_Rate 
    Case "1", "2", "5.5", "11", "6", "9", "12", "18", "24", "36", "48", "54" 
    a = Data_Rate 

    Select Case Date_Rate 
     Case "1" 
     b = 2 
     Case "2", "5.5", "11" 
     b = 1 
     Case Else: 
     MsgBox ("ERROR - Data_Rate") 
    End Select 

    Case "0", "1", "2", "3", "4", "5", "6", "7" 
    a = 3 
    Case Else: 
    MsgBox ("ERROR - Data_Rate") 
End Select 

답변

0
1과 같은 값이 들어

, 6, 그것은 항상에만

I case 문이 경우/다른 경우 문의 무리처럼 첫 번째 경우를 실행합니다 .

하나의 블록이

하지

실행되는 여러 블록

+0

하지만 "case"문과 같이 "if"문에 여러 값을 가질 수 없습니까? 다음과 같이 할 수 있습니다. if (Date_Rate = "1"또는 "2"또는 "11") 그렇다면 .... ??? – Nimrod

+0

마음에 드십시오 - "IF"작품 : 감사합니다! – Nimrod

+0

@Nimrod, 예, 그냥 (Date_Rate = "1"또는 Date_Rate = "2"또는 Date_Rate = "11")로 작성됩니다 – CaffGeek

3

는 실제 위의 코드에 붙여인가요?

그렇다면 중첩 된 Select 문의 값으로 "datA_rate"대신 "datE_rate"가 있기 때문일 수 있습니다.

오류 메시지가 표시되지 않거나 오류 메시지가있는 경우에도 오류 메시지를 구분하여 오류가있는 내부 또는 외부 선택인지를 명확하게 할 수 있습니다.

편집 :

또한 Option Explicit를 사용하고 있다고 생각하지 않습니다. 만약 그렇다면 실제로 변수가 없다면, Date_Rate를 잘못 사용했을 것입니다.

+0

+1은 장님이 아닙니다.) –

+0

Thanks Todd. 코드를 IF/Else로 이미 변경 했으므로 이것이 문제가되는지 알 수 없습니다. 그러나 "date_rate"변수가 없습니다. 경고 메시지가 없습니다 ... 이 오류 팝업을 사용하려면 VBA 구성 옵션을 설정해야합니까? "Option Explicit"에 대해 언급 했습니까 ?? – Nimrod

+0

Option Explicit을 기존 모듈의 맨 위에 수동으로 추가 한 다음 Tools> Options로 가서 첫 번째 탭 (Editor)에서 "Require Variable Declaration"을 선택해야합니다. 이제 새로운 모듈을 만들 때 Option Explicit가 이미 맨 위에 삽입됩니다. 그런 다음 사용하는 모든 변수를 흐리게 처리해야합니다. 이렇게 신비한 버그를 추적하는 데 시간을 절약 할 가치가 있습니다. MSDN 및 다른 웹 사이트에서이 내용을 읽으십시오 (예 : Using Option Explicit (http://www.4guysfromrolla.com/webtech/faq/Intermediate/faq6.shtml)). 이것은 ASP (VBScript)에 관한 내용이지만 VBA에도 적용됩니다. – Todd