728x90
반응형
🚫 Until문 구조
Do Until [조건] [연산자] [조건]
[명령어]
Loop
Do
[명령어]
Loop Until [조건] [연산자] [조건]
While문과 실행은 똑같이 합니다
그런데 차이점은 조건을 설정하면 반대로 작동한다는 겁니다
조건을 "10보다 크면 반복해라"라고 설정하려면
🚫 Do Until Loop
Private Sub CommandButton1_Click()
Dim i As Integer
Do Until i > 10
Debug.Print i
i = i + 1
Loop
End Sub
잘 보시면 조건이 "10보다 크면"입니다
그런데 결과는 0 ~ 10까지 출력이 됩니다
왜나하면 Until문이기 때문에 10보다 크면 반복문을 멈추고
10보다 작으면 반복문이 실행됩니다
🚫 Do Until Loop
Private Sub CommandButton1_Click()
Dim i As Integer
Do
Debug.Print i
i = i + 1
Loop Until i > 10
End Sub
🚫 설명
결과는 똑같습니다
하지만 개념이 약간 다릅니다
Until [조건] [연산자] [조건]이 먼저 오면
조건을 확인 후 반복문이 실행됩니다
그리고 Until [조건] [연산자] [조건]이 마지막에 오면
반복문을 1회 실행 후 조건을 확인합니다
🚫 Exit Do
Private Sub CommandButton1_Click()
Dim i As Integer
Do Until i > 10
Debug.Print i
i = i + 1
Exit Do
Loop
End Sub
Exit Do를 사용해서 반복문을 빠져나올 수 있습니다
⛔ 반복문 사용 시 주의점 ⛔
만약 Exit For나 Exit Do처럼 반복문을 중단하는 명령어가 없는 경우
무한 반복에 빠질 수 있습니다
그럴 경우 ESC나 Ctrl + Pause Break로 멈출 수도 있지만 만약에 이걸로도 멈추지 않는다면
어쩔 수 없이 강제 종료해야 합니다
Ctrl + Alt + Del -> 엑셀 강제 종료
저장이 안 되어있으면.... 큰일 납니다
반복문은 실행하기 전 꼭 조건을 확인하시고 실행해 주세요
728x90
반응형
'목표는!!퇴근!! (엑셀VBA)' 카테고리의 다른 글
(VBA) Cells 셀 지정하는 방법 - Cells() (0) | 2023.08.12 |
---|---|
(VBA) Range 셀 지정하는 방법 - Range() (0) | 2023.08.12 |
(VBA) 반복문 중 "While" 알아보기 - Do, While, Loop (0) | 2023.08.08 |
(VBA) 반복문 중 "For Each" 알아보기 - For Each, Next (0) | 2023.08.08 |
(VBA) 반복문 중 "For" 알아보기 - For, Next (0) | 2023.08.08 |