책 내용 질문하기
계산문제 2번 할인금액
도서
2019 시나공 기출문제집 컴퓨터활용능력 1급 실기
페이지
187
조회수
231
작성일
2019-10-06
작성자
탈퇴*원
첨부파일

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


답변
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 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 Then

             fn할인금액1 = 금액 * (1 - 0.15)
            
             Else
             fn할인금액1 = 금액 * (1 - 0.05)
            End If
          Case Else

             fn할인금액1 = 금액 * (1 - 0.05)

       End Select

     

    위의 코드로 변경해도 결과가 나오기는 하지만,

    해설에 제시된 코드가 더 간단합니다.

     

    좋은 하루 보내세요. 

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.