책 내용 질문하기
변수인 참조행에 1씩 누적시켜가는 부분이 이해되지 않아요ㅠㅠ(재질문)
도서
[2013] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2007 사용자용)
페이지
245
조회수
82
작성일
2013-01-23
작성자
첨부파일

저번에 똑같은 질문을 올렸었는데 이 내용이 다른 부분을 설명해주셨어요

ㅠㅠ다시한번만 부탁드립니다. 이 부분 정말 이해가 안갑니다.

스위치 = 0

참고행 = 3
For Each Name In Range("D4:D7")

참조행 = 참조행 + 1

If Name = txt고객명 Then
txt고객등급 = Cells(참조행, 5)
txt매출금액 = Cells(참조행, 6)
txt결제방식 = Cells(참조행, 7)
스위치 = 1
Exit For

next

if 스위치 = 0 then
MsgBox "조건에 일치하는 자료가 없습니다."
End If
Next

245쪽에 이런 설명이 있는데

참조행에 1을 누적키는 것이 이해가 되지 않습니다ㅠㅠ 제가 이해를 잘못하고 있는 것 같습니다

이게 시트에 나와있는대로 김현진 성은희 정민호 주성치 순으로 txt고객명에 입력을 한다면

김현진은 참조행 초깃값인 3에 1을 더한 4행의 5열에서 고객등급을 찾고, 성은희는 김현진의 참조행이었던 5행의 5열에서 고객등급을 찾고 다른 두사람도 그런식으로 할 수 있는데 고객들의 이름을 입력하는 순서가 바뀐다면 김현진의 고객등급을 6행 5열에서 찾고 성은희의 고객등급을 4행 5열에서 찾게되는 일이 발생하지 않나요??

답변
2013-01-24 09:24:27

안녕하세요.

코드 자체를 잘못 이해하고 계신듯 합니다. 고객명을 입력하고 고객조회 버튼을 누르면 d4:d7 영역의 데이터를 처음부터 일일이 비교하게 됩니다. 같은 데이터가 있으면 각 컨트롤에 데이터를 표시한 후 Exit For에서 For문을 빠져나오게 됩니다. 그런 다음 또 다시 다른 사람을 입력하고 고객조회 버튼을 클릭하면 코드의 맨 앞부분부터 다시 실행하게 되므로 코드의 앞부분에 있는 참조행=3이 실행됩니다. 그러므로 다시 d4:d7 영역의 데이터를 처음부터 검색하게 되는 것입니다. 그 전에 어떤 데이터를 검색하든지 상관 없게 되는 것입니다.

즐거운 하루 되세요.

"
  • *
    2013-01-24 09:24:27

    안녕하세요.

    코드 자체를 잘못 이해하고 계신듯 합니다. 고객명을 입력하고 고객조회 버튼을 누르면 d4:d7 영역의 데이터를 처음부터 일일이 비교하게 됩니다. 같은 데이터가 있으면 각 컨트롤에 데이터를 표시한 후 Exit For에서 For문을 빠져나오게 됩니다. 그런 다음 또 다시 다른 사람을 입력하고 고객조회 버튼을 클릭하면 코드의 맨 앞부분부터 다시 실행하게 되므로 코드의 앞부분에 있는 참조행=3이 실행됩니다. 그러므로 다시 d4:d7 영역의 데이터를 처음부터 검색하게 되는 것입니다. 그 전에 어떤 데이터를 검색하든지 상관 없게 되는 것입니다.

    즐거운 하루 되세요.

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