안녕하세요! 실기 열심히 공부하고 있는 학생입니다!
다름이 아니라, 설명문을 봐도 for each문에 관한 이해가 잘 안가는데, 혹시 괜찮으시다면 자세한 설명 한 번만 부탁드려도될까요?
안녕하세요.
for each 문은 반복문입니다.
기본 형식은 다음과 같습니다.
for each 변수 In Range(범위)
.
.
.
next
해당 문제에서는 변수 aa, 범위 "D4:D7"로 지정이 되었습니다.
for each aa In Range("D4:D7")의 의미는
변수 aa에 범위 D4, D5, D6, D7의 값을 반복적으로 넣으면서 next까지 포함되어 있는 코드를 실행하라는 것입니다.
처음에 변수 aa에는 D4 셀의 값이 저장되고, 아래 코드를 실행하고 Next를 만나면 다시 For each문으로 돌아옵니다.
제어가 옮겨오면 aa에 D5 셀의 값이 저장되고, 코드 실행 후 Next를 만나면 다시 For each로 돌아오는 것이죠.
이렇게 aa가 D7일 때 까지 반복하고 next를 만나면 for each로 갔다가 범위 밖인 것을 확인하고 Next 아래 문장을 실행합니다.
이게 for each 문의 기본 작동 방식이구요. 전체적인 코드를 살펴보면 다음과 같습니다.
스위치변수는 임의로 변수 이름을 지정한 것입니다.
변수는 변하는 값을 저장하는 기억장치의 일부로 보시면 됩니다. 기억장치에 스위치변수라는 방을 만들고, 변하는 값들을 저장하는 것입니다.
스위치변수를 이용한 이유는 txt고객명에 입력한 값과 동일한 데이터가 있었는지를 파악하기 위해 넣은 것입니다.
스위치변수의 초기값으로 0을 넣고, txt고객명과 같은지 비교하는 if문 안에 스위치=1을 넣었습니다.
그런 다음 for each문 밖에서 스위치 변수를 비교합니다.
스위치 변수가 초기값 그대로 0 이면 txt고객명과 같은 데이터가 없다는 의미가 되고,
스위치 변수 값이 1로 변경되었다면 txt고객명과 같은 데이터가 있다는 의미가 됩니다.
스위치 변수는 on/off의 개념으로 1과 0을 사용한 것이데요, 다른 숫자를 사용하셔도 상관은 없습니다.
처음에 참조행에 3을 넣고, for문의 첫번째에 참조행=참조행+1을 실행하면 참조행은 4가 됩니다.
이 4는 워크시트에서 고객명이 들어 있는 범위의 첫번째 행을 의미하는 것입니다.
즉, 첫번째 고객이 들어 있는 '김현진'은 워크시트에 4행에 입력되어 있습니다.
첫번째 데이터를 비교할 때는 참조행이 4, 두번째 데이터를 비교할 때는 for 문 안에 들어 있는
'참조행=참조행+1'를 또 실행하게 되므로 참조행은 5 이렇게 1씩 증가하게 되는 것입니다.
좋은 하루 보내세요.
-
관리자2019-03-20 14:11:12
안녕하세요.
for each 문은 반복문입니다.
기본 형식은 다음과 같습니다.
for each 변수 In Range(범위)
.
.
.
next
해당 문제에서는 변수 aa, 범위 "D4:D7"로 지정이 되었습니다.
for each aa In Range("D4:D7")의 의미는
변수 aa에 범위 D4, D5, D6, D7의 값을 반복적으로 넣으면서 next까지 포함되어 있는 코드를 실행하라는 것입니다.
처음에 변수 aa에는 D4 셀의 값이 저장되고, 아래 코드를 실행하고 Next를 만나면 다시 For each문으로 돌아옵니다.
제어가 옮겨오면 aa에 D5 셀의 값이 저장되고, 코드 실행 후 Next를 만나면 다시 For each로 돌아오는 것이죠.
이렇게 aa가 D7일 때 까지 반복하고 next를 만나면 for each로 갔다가 범위 밖인 것을 확인하고 Next 아래 문장을 실행합니다.
이게 for each 문의 기본 작동 방식이구요. 전체적인 코드를 살펴보면 다음과 같습니다.
스위치변수는 임의로 변수 이름을 지정한 것입니다.
변수는 변하는 값을 저장하는 기억장치의 일부로 보시면 됩니다. 기억장치에 스위치변수라는 방을 만들고, 변하는 값들을 저장하는 것입니다.
스위치변수를 이용한 이유는 txt고객명에 입력한 값과 동일한 데이터가 있었는지를 파악하기 위해 넣은 것입니다.
스위치변수의 초기값으로 0을 넣고, txt고객명과 같은지 비교하는 if문 안에 스위치=1을 넣었습니다.
그런 다음 for each문 밖에서 스위치 변수를 비교합니다.
스위치 변수가 초기값 그대로 0 이면 txt고객명과 같은 데이터가 없다는 의미가 되고,
스위치 변수 값이 1로 변경되었다면 txt고객명과 같은 데이터가 있다는 의미가 됩니다.
스위치 변수는 on/off의 개념으로 1과 0을 사용한 것이데요, 다른 숫자를 사용하셔도 상관은 없습니다.
처음에 참조행에 3을 넣고, for문의 첫번째에 참조행=참조행+1을 실행하면 참조행은 4가 됩니다.
이 4는 워크시트에서 고객명이 들어 있는 범위의 첫번째 행을 의미하는 것입니다.
즉, 첫번째 고객이 들어 있는 '김현진'은 워크시트에 4행에 입력되어 있습니다.
첫번째 데이터를 비교할 때는 참조행이 4, 두번째 데이터를 비교할 때는 for 문 안에 들어 있는
'참조행=참조행+1'를 또 실행하게 되므로 참조행은 5 이렇게 1씩 증가하게 되는 것입니다.
좋은 하루 보내세요.