본문 바로가기
VBA

[VBA_Multi For each] 행과 열을 반복하여 X묶음을 찾아라

by 일등미노왕국 2021. 8. 18.

  오늘은 다중 For each를 해보려고 한다.

보통 다중 For문을 많이 사용하고  다중 For each는 많이 사용하지 않지만 본인들의 코드가 조금더 업그레이드 되려면 For each를 잘 다루어야 한다.

 

다중 For 문을 사용하는 이유는 막상 For each문을 쓰려면 영역안의 행과 열의 위치를 찾아내기가 힘들어 하기 때문이다.

 

  문제는 이렇다. 각 X들의 묶음을 하나로 해서 계산을 하여 AA열에 그 값을 출력하는게 문제이다.

해법으로는 묶음들을 보면 공백xxx공백 이런식으로 되어 있기에 이 값을 찾기 위해서는 자신의 위치는 공백인데 그 다음 열이 값이 X인 값들을 찾으면 된다. 

 

여기서 유의할 점이 있다.

바로 각 행의 1번째 값이 X가 있는 상황이다. 다시 말하면 해법으로 제시한 경우는 자기 자신은 공백이고 그 다음이 X여야 하는데, 자기 자신이 X이고 처음부터 나온 값이 나오는 상황은 해법의 경우에 포함되지 않으니 이를 위한 예외 구문이 필요하다. 

X 묶음들의 합을 구하는 문제

이 문제를 풀기 위해선 보통 변수 i와 j를 정수로 선언하여 행을 반복하면서 각 행의 열을 반복하며 값을 구한다.

dim i&, j&
for i=1 to end.rows
    for j=1 to end.columns
    
    	실행
        
    next j
next i

각자 편하고 익숙한 방법을 자신의 무기로 사용하면 되는데 For each를 사용하고 싶은데 cells의 위치를 나타내는 방법을 몰라서 for문을 사용하는 분들에게 오늘의 코드가 그 해결책이 되길 바란다.

x묶음세기(20.11.19).xlsm
0.02MB

댓글