728x90
반응형
🔃 For Each문 구조
For Each [변수] In [모든 객체]
[명령어]
Next
For문은 숫자로 반복 횟수를 설정해서 반복을 한다면
For Each는 객체나 배열을 순차적으로 반복을 합니다
(말이 좀 어렵네요.....)
🔃 생성된 전체 시트 이름 알아보기
Private Sub CommandButton1_Click()
Dim WS As Worksheet
For Each WS In Worksheets
Debug.Print WS.Name
Next
End Sub
보시면 [변수]는 Worksheet
[모든 객체]는 Worksheets
영어는 잘 모르지만 뒤에 "s"가 붙으면 복수이므로
[모든 객체]에서 시트 하나하나씩 [변수]에 담으면서 반복합니다
🔃 배열 모든 값 알아보기
Private Sub CommandButton1_Click()
Dim STR As Variant
Dim Arr() As Variant
Arr = Array("이름", "전화번호", "주소")
For Each STR In Arr
Debug.Print STR
Next
End Sub
For Each문에 사용하는 변수는 무조건 Variant 형식으로 설정해야 하네요
🔃 For Each문 빠져나오기 (Exit For)
Private Sub CommandButton1_Click()
Dim STR As Variant
Dim Arr() As Variant
Arr = Array("이름", "전화번호", "주소")
For Each STR In Arr
Debug.Print STR
Exit For
Next
End Sub
Exit For를 사용해서 반복문에서 빠져나올 수 있습니다
For Each문은 그냥 For문처럼 증가치, 감소치를 설정할 수 없습니다
한쪽 방향으로 만 순차적으로 반복된다고 보시면 됩니다
⛔ 반복문 사용 시 주의점 ⛔
만약 Exit For나 Exit Do처럼 반복문을 중단하는 명령어가 없는 경우
무한 반복에 빠질 수 있습니다
그럴 경우 ESC나 Ctrl + Pause Break로 멈출 수도 있지만 만약에 이걸로도 멈추지 않는다면
어쩔 수 없이 강제 종료해야 합니다
Ctrl + Alt + Del -> 엑셀 강제 종료
저장이 안 되어있으면.... 큰일 납니다
반복문은 실행하기 전 꼭 조건을 확인하시고 실행해 주세요
728x90
반응형
'목표는!!퇴근!! (엑셀VBA)' 카테고리의 다른 글
(VBA) 반복문 중 "Until" 알아보기 - Do, Until, Loop (0) | 2023.08.09 |
---|---|
(VBA) 반복문 중 "While" 알아보기 - Do, While, Loop (0) | 2023.08.08 |
(VBA) 반복문 중 "For" 알아보기 - For, Next (0) | 2023.08.08 |
(VBA) 조건문 중 "Switch" 알아보기 - Switch() (0) | 2023.08.06 |
(VBA) 조건문 중 "Select" 알아보기 - Select () (0) | 2023.08.06 |