vba [vba] 아는것이 힘이다 - 2중 및 다중 중첩 For문의 활용
페이지 정보
본문
보통 2중 중첩 For문의 경우 아래와 같이 사용합니다.
Sub program1472_com()
Dim i As Integer, n As Integer
Dim T As String
T = "i * n = ?" & vbCrLf
For i = 1 To 5
For n = 1 To 5
If Len(T) Then T = T & vbCrLf
T = T & i & " * " & n & " = " & i * n
Next n
Next i
MsgBox T
End Sub
아래는 출력 결과 입니다.
이정도는 초보 분들도 다 아실 내용입니다.
다음으로 소개해 드릴 방법은 상상도 못할 고급 프로만이 사용하는 기술 입니다.
Sub program1472_com()
Dim i As Integer, n As Integer
Dim T As String
T = "i * n = ?" & vbCrLf
For i = 1 To 5
For n = 1 To 5
If Len(T) Then T = T & vbCrLf
T = T & i & " * " & n & " = " & i * n
Next n, i
MsgBox T
End Sub
이걸 좀더 변형하면
Sub program1472_com()
Dim i As Integer, n As Integer
Dim T As String
T = "i * n = ?" & vbCrLf
For i = 1 To 5: For n = 1 To 5
If Len(T) Then T = T & vbCrLf
T = T & i & " * " & n & " = " & i * n
Next n, i
MsgBox T
End Sub
이렇게 사용할 수 있습니다.
이 3가지 모두 똑같은 결과값을 도출합니다.
주의 할점으로 "Next n, i" 여기서 "선입후출" 이라고 해야 하나요?
마지막 For문이 맨 앞으로 오고 시작하는 For문이 맨 끝으로 가야 합니다.
3중 For문의 경우 응용한다면 아래와 같이 사용할 수 있겠지요
Sub program1472_com()
Dim i As Integer, n As Integer, x As Integer
Dim T As String
T = "i * n * x = ?" & vbCrLf
For i = 1 To 5
For n = 1 To 5
For x = 1 To 5
If Len(T) Then T = T & vbCrLf
T = T & i & " * " & n & " * " & x & " = " & i * n * x
Next x, n, i
MsgBox T
End Sub
출력 결과는 아래와 같습니다.(MsgBox로 출력해서 잘린겁니다.)
- 이전글[vba] WorkSheet가 속한 WorkBook의 파일경로 21.02.12
- 다음글[vba] OLEDB를 활용한 시트 데이터 검색 및 추출을 통한 데이터 정리 20.09.22
댓글목록
등록된 댓글이 없습니다.