책 내용 질문하기
for each ~ next
도서
2019 시나공 컴퓨터활용능력 1급 실기
페이지
251
조회수
176
작성일
2019-07-30
작성자
탈퇴*원
첨부파일

 

Private Sub cmd고객조회_Click()

스위치=0

참조행=3

For each aa in Range("d4:d7")

참조행 = 참조행 + 1

If aa.Value=txt고객명 Then

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

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

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

스위치 = 1

Exit for

End If

Next

If 스위치 = 0 Then

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

End if

End sub

 

 

1. 변수지정을 할때 , dim= 을 사용하던데 여기서 사용을 안 한 이유가 뭔가요?

2. 참조행을 4가 아니라 3을 하는 이유가 뭔가요?

3. 고객명은 4행부터 있으니까 굳이 3이 아니라 1부터도 가능한 건가요?

4. Exit for  다음에 end If 가 써져 있는데    End If다음에  Exit for 써도 되나요?

5. 스위치=0,스위치 = 1 에서 스위치가 변수의 이름이라는 것은 알겠는데 0은 뭐고 1은 뭔가요?

 

답변
2019-08-01 00:28:22

안녕하세요.

 

1.

동일 프로시저 내에서만 사용되는 변수는 옵션으로 설정(꼭 선언하도록)하지 않는 이상

선언하지 않고 사용하셔도 무방합니다.

선언시에는 dim a 처럼 사용됩니다. =은 포함되지 않습니다.

 

2.

For 문의 첫번째 행에서

참조행 = 참조행 + 1

으로 증가시킬 예정이기 때문에 하나 작은 숫자로 설정합니다.

For문의 참조행 증가를 위한 코드는

For 문을 돌면서 참조행을 1씩 증가시켜야 하므로 꼭 필요합니다.

이를 고려해서 3으로 지정한 것이죠.

 

 

3.

컴퓨터는 [표1]이나 고객명이 실제 고객명인지 필드명인지 정확히 알지 못합니다.

실제 고객명부터 확인할 수 있도록 3행으로 지정해서 실제 For문이 4행부터 확인할 수 있도록 설정해야 합니다.

 

4.

순서가 바뀌면 안됩니다.

if문의 조건이 만족하면

스위치 = 1로 만들고

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

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

 

 

5.

스위치변수를 이용한 이유는 txt고객명에 입력한 값과 동일한 데이터가 있었는지를 파악하기

위해 넣은 것입니다.
스위치변수의 초기값으로 0을 넣고, txt고객명과 같은지 비교하는 if문 안에 스위치=1을 넣었습니다.
그런 다음 for each문 밖에서 스위치 변수를 비교합니다.
스위치 변수가 초기값 그대로 0 이면 txt고객명과 같은 데이터가 없다는 의미가 되고,
스위치 변수 값이 1로 변경되었다면 txt고객명과 같은 데이터가 있다는 의미가 됩니다.

스위치 변수는 on/off의 개념으로 1과 0을 사용한 것이데요, 다른 숫자를 사용하셔도 상관은 없습니다.

 

좋은 하루 보내세요.

 

  • 관리자
    2019-08-01 00:28:22

    안녕하세요.

     

    1.

    동일 프로시저 내에서만 사용되는 변수는 옵션으로 설정(꼭 선언하도록)하지 않는 이상

    선언하지 않고 사용하셔도 무방합니다.

    선언시에는 dim a 처럼 사용됩니다. =은 포함되지 않습니다.

     

    2.

    For 문의 첫번째 행에서

    참조행 = 참조행 + 1

    으로 증가시킬 예정이기 때문에 하나 작은 숫자로 설정합니다.

    For문의 참조행 증가를 위한 코드는

    For 문을 돌면서 참조행을 1씩 증가시켜야 하므로 꼭 필요합니다.

    이를 고려해서 3으로 지정한 것이죠.

     

     

    3.

    컴퓨터는 [표1]이나 고객명이 실제 고객명인지 필드명인지 정확히 알지 못합니다.

    실제 고객명부터 확인할 수 있도록 3행으로 지정해서 실제 For문이 4행부터 확인할 수 있도록 설정해야 합니다.

     

    4.

    순서가 바뀌면 안됩니다.

    if문의 조건이 만족하면

    스위치 = 1로 만들고

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

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

     

     

    5.

    스위치변수를 이용한 이유는 txt고객명에 입력한 값과 동일한 데이터가 있었는지를 파악하기

    위해 넣은 것입니다.
    스위치변수의 초기값으로 0을 넣고, txt고객명과 같은지 비교하는 if문 안에 스위치=1을 넣었습니다.
    그런 다음 for each문 밖에서 스위치 변수를 비교합니다.
    스위치 변수가 초기값 그대로 0 이면 txt고객명과 같은 데이터가 없다는 의미가 되고,
    스위치 변수 값이 1로 변경되었다면 txt고객명과 같은 데이터가 있다는 의미가 됩니다.

    스위치 변수는 on/off의 개념으로 1과 0을 사용한 것이데요, 다른 숫자를 사용하셔도 상관은 없습니다.

     

    좋은 하루 보내세요.

     

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