select case를 써서 했을때 아래와 같이 했는데
제가 틀린 부분 좀 확인 부탁 드립니다.
Public Function fn할인금액(분류, 판매일, 금액)
Select Case 분류
Case Is = "사회과학"
fn할인금액 = 금액 * (1 - 0.1)
Case Is = "취미/레저" And Month(판매일) = "3"
fn할인금액 = 금액 * (1 - 0.15)
Case Else
fn할인금액 = 금액 * (1 - 0.05)
End Select
End Function
안녕하세요.
Month 함수의 결과는 숫자입니다. "3"이 아닌 3과 비교되어야 합니다.
and로 두 조건을 연결한 구문을 VBA에서 인식하지 못해서 오류가 뜨는 것입니다.
오류 원인 Case Is = "취미/레저" And Month(판매일) = 3
select case 문에서 비교하도록 지시한 것은 분류 필드이므로
Month(판매일)=3 을 인식하지 못합니다.
select case 문으로 작성하실 경우 if 문으로 조건을 다시한번 확인해야 합니다.
Select Case 분류
Case Is = "사회과학"
fn할인금액1 = 금액 * (1 - 0.1)
Case Is = "취미/레저"
If Month(판매일) = 3 Then
fn할인금액1 = 금액 * (1 - 0.15)
Else
fn할인금액1 = 금액 * (1 - 0.05)
End If
Case Else
fn할인금액1 = 금액 * (1 - 0.05)
End Select
위의 코드로 변경해도 결과가 나오기는 하지만,
해설에 제시된 코드가 더 간단합니다.
좋은 하루 보내세요.
-
관리자2019-10-07 20:21:02
안녕하세요.
Month 함수의 결과는 숫자입니다. "3"이 아닌 3과 비교되어야 합니다.
and로 두 조건을 연결한 구문을 VBA에서 인식하지 못해서 오류가 뜨는 것입니다.
오류 원인 Case Is = "취미/레저" And Month(판매일) = 3
select case 문에서 비교하도록 지시한 것은 분류 필드이므로
Month(판매일)=3 을 인식하지 못합니다.
select case 문으로 작성하실 경우 if 문으로 조건을 다시한번 확인해야 합니다.
Select Case 분류
Case Is = "사회과학"
fn할인금액1 = 금액 * (1 - 0.1)
Case Is = "취미/레저"
If Month(판매일) = 3 Thenfn할인금액1 = 금액 * (1 - 0.15)
Else
fn할인금액1 = 금액 * (1 - 0.05)
End If
Case Elsefn할인금액1 = 금액 * (1 - 0.05)
End Select
위의 코드로 변경해도 결과가 나오기는 하지만,
해설에 제시된 코드가 더 간단합니다.
좋은 하루 보내세요.