책 내용 질문하기
프로시저 for each~next가 포함된 코드 질문입니다.
도서
2021 시나공 컴퓨터활용능력 1급 실기
페이지
257
조회수
227
작성일
2022-07-05
작성자
탈퇴*원

257페이지에서 문제2 3번째 <조건에 만족하는 데이터를 워크시트에서 찾아 표시하기>의 코드를 보면

for each 개체변수 In 함수(?)가 먼저 작성되고 그 안에 If 함수(?)가 작성되는데

마무리는 Exit For로 for 함수(?)를 먼저 종료시키고 End If로 If함수(?)를 나중에 종료시키는 것으로 나와있습니다.

그런데 안에 있는 If함수(?)를 먼저 종료시키고 For함수(?)를 종료시켜야 하는거 아닌가요? 

답변
2022-07-05 15:08:54

Private Sub cmd고객조회_Click()

    스위치 = 0

    참조행 = 3

    For Each aa In Range("d4:d7")

        참조행 = 참조행 + 1

        If aa.Value = txt고객명.Value Then

            txt고객등급.Value = Cells(참조행, 5)

            txt매출금액.Value = Cells(참조행, 6)

            txt결제방식.Value = Cells(참조행, 7)

            스위치 = 1

            Exit For

         End If

    Next

    If 스위치 = 0 Then

        MsgBox "조건에 일치하는 자료가 없습니다."

    End If

End Sub

 

if문의 조건이 만족하면

스위치 = 1로 만들고

Exit for로 for문을 빠져나와야 합니다.

Exit for문은 end if 전에 위치해야 논리적으로 맞습니다.

 

좋은 하루 되세요. 

 

  • 관리자
    2022-07-05 15:08:54

    Private Sub cmd고객조회_Click()

        스위치 = 0

        참조행 = 3

        For Each aa In Range("d4:d7")

            참조행 = 참조행 + 1

            If aa.Value = txt고객명.Value Then

                txt고객등급.Value = Cells(참조행, 5)

                txt매출금액.Value = Cells(참조행, 6)

                txt결제방식.Value = Cells(참조행, 7)

                스위치 = 1

                Exit For

             End If

        Next

        If 스위치 = 0 Then

            MsgBox "조건에 일치하는 자료가 없습니다."

        End If

    End Sub

     

    if문의 조건이 만족하면

    스위치 = 1로 만들고

    Exit for로 for문을 빠져나와야 합니다.

    Exit for문은 end if 전에 위치해야 논리적으로 맞습니다.

     

    좋은 하루 되세요. 

     

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