/ / Excel VBA 루프

Excel VBA 루프

단일 루프 | 더블 루프 | 트리플 루프 | Do While Loop

루핑은 가장 강력한 프로그래밍 기술 중 하나입니다. 에이 고리 ...에서 Excel VBA 몇 개의 코드 행을 사용하여 셀 범위를 반복 할 수 있습니다.

단일 루프

단일 루프를 사용하여 1 차원 범위의 셀을 반복 할 수 있습니다.

워크 시트에 명령 단추를 놓고 다음 코드 줄을 추가하십시오.

Dim i As Integer

For i = 1 To 6
    Cells(i, 1).Value = 100
Next i

시트에서 명령 단추를 누르면 결과 :

Excel VBA의 단일 루프

설명: For와 Next 사이의 코드 행은 여섯 번 실행됩니다. i = 1이면 Excel VBA는 행 1과 열 1의 교차 부분에있는 셀에 값 100을 입력합니다. Excel VBA가 다음 i에 도달하면 i가 1로 증가하고 For 문으로 점프합니다. i = 2 인 경우 Excel VBA는 행 2와 열 1 등의 교차 부분에있는 셀에 값 100을 입력합니다.

참고 : 항상 For와 Next 사이의 코드를 들여 쓰기 (탭)하는 것이 좋습니다. 이렇게하면 코드를 더 쉽게 읽을 수 있습니다.

더블 루프

이중 루프를 사용하여 2 차원 셀 범위를 반복 할 수 있습니다.

워크 시트에 명령 단추를 놓고 다음 코드 줄을 추가하십시오.

Dim i As Integer, j As Integer

For i = 1 To 6
    For j = 1 To 2
        Cells(i, j).Value = 100
    Next j
Next i

시트에서 명령 단추를 누르면 결과 :

Excel VBA의 이중 루프

설명: i = 1 및 j = 1 인 경우 Excel VBA는 행 1과 열 1의 교차 부분에있는 값 100에 값을 입력합니다. Excel VBA가 다음 j에 도달하면 j가 1로 증가하고 For j 문으로 점프합니다. i = 1 및 j = 2 인 경우 Excel VBA는 행 1과 열 2의 교차 부분에있는 셀에 값 100을 입력합니다. 다음으로 Excel VBA는 j가 1에서 2까지만 실행되기 때문에 다음 j를 무시합니다. Excel VBA가 다음 i에 도달하면 , i를 1로 증가시키고 For i 구문으로 점프합니다. i = 2 및 j = 1 인 경우 Excel VBA는 행 2와 열 1 등의 교차 부분에서 값 100을 셀에 입력합니다.

트리플 루프

트리플 루프를 사용하여 여러 Excel 워크 시트에서 2 차원 범위를 반복 할 수 있습니다.

워크 시트에 명령 단추를 놓고 다음 코드 줄을 추가하십시오.

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3
    For i = 1 To 6
        For j = 1 To 2
            Worksheets(c).Cells(i, j).Value = 100
        Next j
    Next i
Next c

설명: 이중 루프의 코드와 비교할 때 유일한 변경 사항은 루프를 하나 더 추가하고 워크 시트 (c)를 추가 한 것입니다. C = 1의 경우 첫 번째 시트에서 2 차원 범위를 가져오고 C = 2 인 경우 두 번째 시트를, c = 3 인 경우 세 번째 시트를 가져옵니다.이 결과를 보려면 Excel 파일을 다운로드하십시오.

Do While Loop

For Next 루프 외에도 Excel VBA에는 다른 루프가 있습니다. 예를 들어, Do While Loop. Do While과 Loop 사이에 배치 된 코드는 Do While 이후의 부분이 true 인 한 반복됩니다.

1. 워크 시트에 명령 단추를 놓고 다음 코드 행을 추가하십시오.

Dim i As Integer
i = 1

Do While i < 6
    Cells(i, 1).Value = 20
    i = i + 1
Loop

시트에서 명령 단추를 누르면 결과 :

Do While Loop

설명: i가 6보다 낮 으면 Excel VBA는 행 i와 열 1의 교차 부분에있는 셀에 값 20을 입력하고 i를 1 씩 증가시킵니다. Excel VBA (및 다른 프로그래밍 언어)에서 기호 "="는 된다. 평등하다는 뜻이 아닙니다. 그래서 i = i + 1은 i가 i + 1이된다는 것을 의미합니다. 즉, i의 현재 값을 취하여 1을 더합니다. 예를 들어, i = 1이면 i는 1 + 1 = 2가됩니다. 결과적으로 값 20은 열 A에 5 번 배치됩니다 (i가 6 일 때 Excel VBA가 중지되기 때문에 여섯이 아닙니다).

2. A 열에 숫자를 입력하십시오.

임의의 행 수

3. 워크 시트에 명령 단추를 놓고 다음 코드 행을 추가하십시오.

Dim i As Integer
i = 1

Do While Cells(i, 1).Value <> ""
    Cells(i, 2).Value = Cells(i, 1).Value + 10
    i = i + 1
Loop

시트에서 명령 단추를 누르면 결과 :

고급 Do While 루프

설명 : 셀 (i, 1)만큼.값이 비어 있지 않으면 (<>은 같지 않음) Excel VBA는 행 i와 열 2의 교차 부분에있는 셀에 값을 입력합니다.이 값은 행 i와 열 1의 교차 부분에있는 셀의 값보다 10입니다 Excel VBA는 셀 (7, 1) .Value가 비어 있기 때문에 i가 7 일 때 중지됩니다. 이 방법은 워크 시트의 여러 행을 순환시키는 좋은 방법입니다.

또한 읽으십시오 :