책 내용 질문하기
1권 섹션18-4문제 end if의 순서
도서
2023 시나공 컴퓨터활용능력 1급 실기
페이지
260
조회수
46
작성일
2024-06-22
작성자
권*희

1권 기출따라잡기 문제 4번 

엑셀 p.260 

 

If IsNull(lst과목.Value) Then

txtID = "선택안함"

lst과목.ListIndex = 0

 

Else

 

 a = [a3].Row + [a3].CurrentRegion.Rows.Count

 

 Cells(a, 1) = UCase(txtID)

 Cells(a, 2) = txt이름

 

 b = lst과목.ListIndex

 

 Cells(a, 3) = lst과목.List(b, 0)

 Cells(a, 4) = lst과목.List(b, 1)

 Cells(a, 5) = lst과목.List(b, 2)

 Cells(a, 6) = lst과목.List(b, 3) - (lst과목.List(b, 3) * 0.1)

 

txtID.Value = ""

txt날짜.Value = ""

txt이름.Value = ""

lst과목.Value = ""

 

 End If

->

여기서 end if의 순서를 아래와 같이 바꾸면 오류가 나던데 

 섹션18문제 1,2,3번과 다르게 값을 빈칸으로 두는 식을 (같은 섹션 문제 1,2,3번의 경우 end if로 if문이 끝난후에  txtID=""빈칸 이런식으로 식이 쓰여지는데

이 문제만 유독 if문이 끝나기전에 아무것도 선택되지 않는 상태의 식을 먼저 써줘야 하는지 이해가 잘 가지 않습니다. 알려주세요!!

end if 전에 써야하는 이유를 설명해주세요 ㅜㅜ 

 

  

Cells(a, 3) = lst과목.List(b, 0)

 Cells(a, 4) = lst과목.List(b, 1)

 Cells(a, 5) = lst과목.List(b, 2)

 Cells(a, 6) = lst과목.List(b, 3) - (lst과목.List(b, 3) * 0.1)

 

End If 

txtID.Value = ""

txt날짜.Value = ""

txt이름.Value = ""

lst과목.Value = ""

답변
2024-06-26 10:17:42

안녕하세요.

lst과목의 항목을 선택하지 않으면 txtID에 "선택안함"을 표시해야 하는데, End if를 'txtID.Value = ""' 앞에 지정하면 lst과목의 항목을 선택하지 않았을 때 txtID에 "선택안함"을 표시했다 바로 txtID.Value = ""을 실행하여 삭제하므로 폼에는 아무런 변화가 없는 것으로 보입니다. lst과목의 항목을 선택하지 않을 때와 선택했을 때를 구분하여 각 항목을 지워야 하므로 End if를 가장 마지막에 입력해야 합니다.


즐거운 하루 되세요.

  • 관리자
    2024-06-26 10:17:42

    안녕하세요.

    lst과목의 항목을 선택하지 않으면 txtID에 "선택안함"을 표시해야 하는데, End if를 'txtID.Value = ""' 앞에 지정하면 lst과목의 항목을 선택하지 않았을 때 txtID에 "선택안함"을 표시했다 바로 txtID.Value = ""을 실행하여 삭제하므로 폼에는 아무런 변화가 없는 것으로 보입니다. lst과목의 항목을 선택하지 않을 때와 선택했을 때를 구분하여 각 항목을 지워야 하므로 End if를 가장 마지막에 입력해야 합니다.


    즐거운 하루 되세요.

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