반응형
For Each, Next
For Each, Next 문은 For, Next 문과 비슷하지만 사용방법이 조금 다르다. For, Next 문에서는 특정 규칙을 갖는 숫자를 이용해서 순환 계산을 하는데 For Each, Next 문에서는 목록을 제시하고 그 목록에 대한 순환 계산을 할 때 사용한다. 사용방법은 다음과 같다.
Sub ForEachNext()
arrData = Array("강아지", "고양이", "송아지", "망아지")
For Each iData In arrData
i = i + 1
Cells(i, 1) = iData
Next
End Sub
위 코드는 "강아지, 고양이, 송아지, 망아지" 라는 arrData(배열)을 제시하고, arrData 안에 있는 각각의 iData(항목)을 첫번째 열에 출력하라는 것이다. 실행 결과는 다음과 같다.
For Each, Next 문을 사용할 때 반드시 위와 같이 목록을 제시해야하는 것은 아니다. 다음과 같이 사용하는 방법도 있다.
아래 그림처럼 여러 시트의 특정 셀(A1) 에 문자가 입력되어 있다. 이것들을 "취합" 시트에 모아서 보려고 한다.
다음 코드를 사용하자.
Sub ForEachNext()
Dim Sht As Worksheet
Dim i As Integer
For Each Sht In ThisWorkbook.Worksheets
If Sht.Name <> "취합" Then
i = i + 1
Cells(i, 1) = Sht.Name
Cells(i, 2) = Sht.[A1]
End If
Next
End Sub
위 코드는 현재 사용하는 파일(Workbook)의 시트 목록(Worksheets)에서 각각의 시트(Each Sht)에 대해 시트 이름이 "취합" 이 아니면 첫번째 열에는 시트 이름을, 두번째 열에는 [A1] 셀의 내용을 출력하라는 것이다.
위 코드를 취합 시트에서 실행하면 결과는 다음과 같이 나타난다.
반응형
'Excel VBA 기초' 카테고리의 다른 글
Excel VBA - Like 연산자 (0) | 2023.12.16 |
---|---|
Excel VBA - Switch (0) | 2023.12.16 |
Excel VBA - And, Or, Not 연산자 (0) | 2023.12.14 |
Excel VBA - 상수 (0) | 2023.12.13 |
Excel VBA - 파일 저장 형식 (0) | 2023.12.13 |