책 내용 질문하기
[1권 엑셀] 314쪽 5. 실행 결과 확인하기 관련 질문
도서
2021 시나공 컴퓨터활용능력 1급 실기
페이지
314
조회수
319
작성일
2020-12-11
작성자
탈퇴*원
첨부파일

교재에는 '만약 토익, 컴퓨터, 전공2 점수 중 하나라도 100보다 크면 메세지박스 출력 아니면 Cells로 입력'으로 풀이되어 있습니다.

저는 '만약 토익, 컴퓨터, 전공2 점수가 모두 100보다 작거나 같으면 Cells로 입력 아니면 메세지박스 출력'으로 풀었는데요,

그 결과 디자인 보기를 해제하고 폼의 입력버튼을 눌렀을 때 메세지박스가 출력되지 않고 데이터도 제한없이 모두 입력됩니다.

왜 두 방식의 결과가 다르게 나오는지(제가 쓴 코드가 잘못되었는지) 궁금합니다. 

 

VBA 코드 이미지파일 첨부합니다.

 

 

 

 

감사합니다.

답변
2020-12-15 09:17:20

Private Sub cmd입력_Click()

    If Val(txt토익) <= 100 Or Val(txt컴퓨터) <= 100 Or Val(txt전공2) <= 100 Then

        입력행 = [b2].Row + [b2].CurrentRegion.Rows.Count

        Cells(입력행, 2) = txt이름

        Cells(입력행, 3) = Format(txt학번, ">&&&&&&")

        Cells(입력행, 4) = cmb학과명

        Cells(입력행, 5) = Val(txt토익)

        Cells(입력행, 6) = Val(txt컴퓨터)

        Cells(입력행, 7) = Val(txt전공2)

        cmb학과명.Locked = True

    Else

       

        

        MsgBox "점수는 0~100 사이의 값으로 입력하세요."

    End If

End Sub

 

위 코드로도 정상 실행 됩니다. 

 

실기특성상 질문 주신 내용만으로는 정확한 이유를 알기 어렵습니다. 

 

작성하신 파일을 첨부하여 다시 질문 주시면 확인 후 답변 드리겠습니다. 

 

좋은 하루 되세요. 

 

 

 

  • 관리자
    2020-12-15 09:17:20

    Private Sub cmd입력_Click()

        If Val(txt토익) <= 100 Or Val(txt컴퓨터) <= 100 Or Val(txt전공2) <= 100 Then

            입력행 = [b2].Row + [b2].CurrentRegion.Rows.Count

            Cells(입력행, 2) = txt이름

            Cells(입력행, 3) = Format(txt학번, ">&&&&&&")

            Cells(입력행, 4) = cmb학과명

            Cells(입력행, 5) = Val(txt토익)

            Cells(입력행, 6) = Val(txt컴퓨터)

            Cells(입력행, 7) = Val(txt전공2)

            cmb학과명.Locked = True

        Else

           

            

            MsgBox "점수는 0~100 사이의 값으로 입력하세요."

        End If

    End Sub

     

    위 코드로도 정상 실행 됩니다. 

     

    실기특성상 질문 주신 내용만으로는 정확한 이유를 알기 어렵습니다. 

     

    작성하신 파일을 첨부하여 다시 질문 주시면 확인 후 답변 드리겠습니다. 

     

    좋은 하루 되세요. 

     

     

     

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