/ Excel VBA의 동적 배열

Excel VBA의 동적 배열

배열의 크기가 증가하고 배열의 크기를 수정하지 않으려는 경우, ReDim 키워드. Excel VBA 그런 다음 배열의 크기를 자동으로 변경합니다.

A 열에 숫자를 추가하십시오.

Excel VBA의 동적 배열

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

1. 먼저, numbers라는 배열을 선언합니다. 또한 Integer 유형의 두 변수를 선언하십시오. 하나의 이름이 지정된 크기와 하나의 이름이 지정되었습니다.

Dim numbers() As Integer, size As Integer, i As Integer

참고 : 배열에는 아직 크기가 없습니다. 숫자, 크기 및 임의로 여기에서 선택됩니다. 모든 이름을 사용할 수 있습니다. 나머지 코드에서이 이름을 참조하는 것을 잊지 마십시오.

2. 다음으로 배열의 크기를 결정하고 변수 크기에 저장합니다. 워크 시트 함수 CountA를 사용하여이 작업을 수행 할 수 있습니다. 다음 코드 줄을 추가하십시오.

size = WorksheetFunction.CountA(Worksheets(1).Columns(1))

3. 이제 배열의 크기를 알았고 다시 크기를 조정할 수 있습니다. 다음 코드 줄을 추가하십시오.

ReDim numbers(size)

4. 다음으로 배열의 각 요소를 초기화합니다. 루프를 사용합니다.

For i = 1 To size
    numbers(i) = Cells(i, 1).Value
Next i

5. MsgBox를 사용하여 배열의 마지막 요소를 표시합니다.

MsgBox numbers(size)

6. Visual Basic Editor를 종료하고 시트에서 명령 단추를 누릅니다.

결과:

배열의 마지막 요소

7. 왜 이것이 동적 배열이라고 불리는 지 명확하게 보려면 열 A에 숫자를 추가하십시오.

숫자를 더하다

8. 명령 단추를 다시 누르십시오.

동적 배열 결과

결론 : Excel VBA는이 동적 배열의 크기를 자동으로 변경했습니다.

9. ReDim 키워드를 사용하면 현재 배열에 저장된 기존 데이터를 지 웁니다. 예를 들어, 이전에 작성된 코드에 다음 코드 행을 추가하십시오.

ReDim numbers(3)
MsgBox numbers(1)

결과:

보존하지 않고

배열이 비어 있습니다.

10. 다시 배열 할 때 기존 배열의 데이터를 보존하려면 키워드 보존을 사용하십시오.

ReDim Preserve numbers(3)
MsgBox numbers(1)

결과:

보존과 함께

또한 읽으십시오 :