목차
배열은 같은 종류의 데이터를 보관하는 변수입니다. 데이터의 행이나 열이 하나만 있는 경우 이를 1차원 배열이라고 합니다. 그러나 행과 열이 둘 이상인 경우 2D 배열이라고 합니다. ReDim 을 사용하여 VBA에서 배열의 크기를 조정합니다. 또한 ReDim 과 함께 Preserve 키워드를 사용하여 이전 데이터를 그대로 유지합니다. 이 문서에서는 Excel VBA<에서 2D 배열 을 " ReDim Preserve "하는 2 빠른 방법을 보여줍니다. 3> .
실습 워크북 다운로드
ReDim에 대한 매크로 2D.xlsm 보존
ReDim Preserve 2D Array in Excel VBA
이는 3개의 행과 2개의 열이 있는 2D 배열 에서 생성된 기본 데이터 세트입니다. 먼저 이 배열을 만듭니다. 그런 다음 이 배열에 다른 열을 추가합니다. 이를 위해 " ReDim Preserve "를 사용합니다. 또한 이것을 사용하지 않으면 어떻게 되는지 보여드리겠습니다.
기본적으로 배열의 마지막 차원(예: 열 또는 상한)의 크기만 조정할 수 있습니다. 배열을 바꾼 다음 마지막 차원을 변경한 다음 다시 바꾸어 Excel VBA에서 2D 배열 의 두 차원 크기를 조정합니다.
1 . ReDim Preserve Last Dimension 2D Array
먼저 2D 배열 을 동적으로 정의합니다. 그런 다음 ReDim 문을 사용하여3개의 행과 2개의 열이 있는 배열. 마지막으로 ReDim 문을 Preserve 키워드 와 함께 다시 사용하여 2차원 배열의 상한값을 늘립니다.
단계:
- 시작하려면 ALT+F11 을 누릅니다. VBA 모듈 창을 불러옵니다. 또는 개발자 탭 → Visual Basic 을 선택하여 이 작업을 수행할 수 있습니다.
- 그런 다음 탭 삽입 → 모듈 을 선택합니다. 여기에 VBA 코드를 입력하겠습니다.
- 다음으로 모듈 에 다음 코드를 입력합니다. window.
8496
VBA 코드 분석
- 먼저, Sub procedure “ Redim_Preserve_2D_Array_Row ”.
- 그런 다음 변수 Our_Array 를 동적 배열로 선언합니다.
- 다음으로 배열의 크기를 정의합니다. 하한은 3 이고 상한은 2 이며 둘 다 1 부터 시작합니다.
- 그런 다음 배열에 값을 할당합니다. .
- 다음에 C6:D8 셀 범위에 값을 입력합니다.
- 그 다음에는 코드를 실행합니다.
- 따라서 저장 모듈 하고 실행 .
- 결과적으로 정의된 셀 범위에 값을 반환합니다. " Rachel "이 행 1 및 열 1 위치에 있음을 알 수 있습니다.VBA 코드에서 ( 1,1 )로 정의되었습니다.
- 이제 배열 크기를 조정하겠습니다.
- 이것을 이전 코드에 추가하고 첫 번째 Range.Value 문 을 제거합니다. 또한 코드가 어떻게 생겼는지 아래 스냅샷에서 볼 수 있습니다.
3641
- 여기서 상한을 ( 1 To 2 ) to ( 1 To 3 ) by 1 .
- 그러면 배열에 값을 추가했습니다.
- 이제 이 코드를 실행하면 이전 값이 보존되지 않는 것을 볼 수 있습니다. 이전 값에 대해 공백을 반환합니다.
- 이제 Preserve 키워드 를 ReDim 문 .
- 마지막으로 전체 코드는 다음과 같습니다.
6281
- 이제 <이 코드를 1> 실행 하면 다음과 같이 출력됩니다. 따라서 Excel VBA에서 2D 배열 의 마지막 차원을 " ReDim Preserve "할 것입니다. 이제 다음 방법은 " ReDim" 방법을 보여줍니다. Preserve ” 및 배열의 두 차원 크기를 조정합니다.
자세히 보기: 고유성을 얻기 위한 VBA Excel에서 열에서 배열로의 값(3가지 기준)
유사한 읽기
- Excel에서 테이블 배열의 이름을 지정하는 방법(사용 쉬운 단계)
- CSV 파일을 배열로 읽는 Excel VBA(4가지 이상적인 예)
- Excel에서 범위를 배열로 변환하는 방법VBA(3가지 방법)
- Excel VBA: 배열에서 중복 제거(2가지 예)
2. ReDim 두 차원 모두 2D 배열 유지 Excel VBA
이 마지막 방법에서는 2D 배열 의 크기를 조정하고 " ReDim Preserve "하는 단계를 보여줍니다. 여기에서는 VBA Transpose 함수를 사용하여 배열의 하한 크기를 조정합니다. 첫 번째 방법에서 배열의 하한 크기를 조정하려고 하면 " Subscript out of range " 오류가 표시됩니다. 이제 더 이상 고민하지 않고 어떻게 이 문제를 해결하고 목표를 달성할 수 있는지 알아보겠습니다.
단계:
- 먼저 첫 번째 방법 과 같이 Module 창을 불러옵니다.
- 두 번째로 다음 코드 행을 첫 번째 코드.
1743
- 게다가 최종 메서드 코드는 다음과 같습니다.
6019
VBA 코드 분석
- 먼저 Sub 프로시저 “ ReDim_Preserve_2D_Array_Both_Dimensions ”를 호출합니다. .
- 그럼 VBA Transpose 함수까지의 나머지 코드는 첫번째 코드와 동일하다.
- 여기서, 배열을 전치하고 있습니다.
- 그런 다음 배열의 상한을 증가시킵니다.
- 그 후 배열을 다시 전치합니다. 따라서 궁극적으로 하한값을 변경하게 됩니다.
- 다음으로 크기 조정된 배열에 대한 값을 입력하고이전 데이터를 보존합니다.
- 마지막으로 셀 범위 C6:E9 에 값을 씁니다.
- 이후 즉, 첫 번째 방법 과 같이 이 코드를 실행 합니다.
- 따라서 코드가 을 유지하는 방법을 시각화할 수 있습니다. " ReDim Preserve " 및 VBA Transpose 기능을 사용하는 2D 배열 .
자세히 보기: VBA를 사용하여 Excel에서 배열을 전치(3가지 방법)
기억해야 할 사항
- ReDim Preserve 는 배열의 하한을 변경할 수 없습니다. 이렇게 하려면 Transpose 기능을 사용해야 합니다.
- 동적 배열에서는 ReDim 만 사용할 수 있습니다.
결론
Excel VBA에서 2D 배열 을 " ReDim Preserve "하는 두 가지 빠른 방법을 보여 주었습니다. 이러한 방법과 관련하여 문제가 발생하거나 저에게 피드백이 있는 경우 아래에 자유롭게 의견을 말하십시오. 또한 ExcelWIKI 사이트를 방문하여 더 많은 Excel 관련 기사를 볼 수 있습니다. 읽어주셔서 감사합니다. 계속 발전하세요!