Excel VBA에서 2D 배열을 보존하는 방법(2가지 쉬운 방법)

  • 이 공유
Hugh West

배열은 같은 종류의 데이터를 보관하는 변수입니다. 데이터의 행이나 열이 하나만 있는 경우 이를 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 관련 기사를 볼 수 있습니다. 읽어주셔서 감사합니다. 계속 발전하세요!

Hugh West는 업계에서 10년 이상의 경험을 가진 고도로 숙련된 Excel 트레이너이자 분석가입니다. 그는 회계 및 재무 학사 학위와 경영학 석사 학위를 보유하고 있습니다. Hugh는 교육에 대한 열정을 가지고 있으며 따라하기 쉽고 이해하기 쉬운 독특한 교수법을 개발했습니다. Excel에 대한 그의 전문 지식은 전 세계 수천 명의 학생과 전문가가 자신의 기술을 향상시키고 경력에서 탁월하도록 도왔습니다. Hugh는 자신의 블로그를 통해 자신의 지식을 전 세계와 공유하고 개인과 기업이 잠재력을 최대한 발휘할 수 있도록 무료 Excel 자습서 및 온라인 교육을 제공합니다.