VBA (Visual Basic for Applications)는 Microsoft에서 개발 한 Visual Basic 프로그래밍 언어의 구현입니다. VBA는 UDF를 활성화하고 작업을 자동화하며 DLL을 통해 WinAPI에 액세스하는 데 사용할 수 있습니다. 그러나 최근에는 사용자가 특정 명령을 실행할 수없고 ' 아래 첨자가 범위를 벗어남, 오류 9 ”그렇게하는 동안 팝업이 나타납니다.
첨자가 범위를 벗어남 오류
VBA에서 'Subscript Out of Range'오류의 원인은 무엇입니까?
여러 사용자로부터 수많은 보고서를받은 후 문제를 조사하기로 결정하고이를 완벽하게 해결하기위한 일련의 솔루션을 고안했습니다. 또한 트리거되는 이유를 살펴보고 다음과 같이 나열했습니다.
- 존재하지 않는 요소 : 경우에 따라 존재하지 않는 명령의 요소를 참조했을 수 있습니다. 아래 첨자가 가능한 첨자의 범위보다 크거나 작을 수 있거나 응용 프로그램의이 시점에서 배열에 차원이 할당되지 않았을 수 있습니다.
- 정의되지 않은 요소 : 코드의 요소 수를 식별하지 않았을 수 있습니다. 배열의 요소 수는 'Dim'또는 'ReDim'명령을 사용하여 정의하는 것이 중요합니다.
- 잘못된 컬렉션 멤버 : 경우에 따라 사용자가 존재하지 않는 컬렉션 구성원을 참조했을 수 있습니다. 콜렉션 멤버에 대해 잘못된 참조가 작성되면이 오류가 트리거 될 수 있습니다.
- 속기 스크립트 : 첨자의 축약 형을 사용했으며 유효하지 않은 요소를 암시 적으로 지정했을 수 있습니다. 유효한 키 이름을 사용하는 것이 중요합니다.
이제 문제의 본질에 대한 기본적인 이해를 얻었으므로 해결책으로 넘어갈 것입니다. 충돌을 피하기 위해 제시된 특정 순서대로 구현해야합니다.
해결 방법 1 : 어레이 확인
Array 요소에 대해 잘못된 값을 정의했을 수 있습니다. 따라서 Array 요소에 대해 정의한 값을 다시 확인하고 올바른 값인지 확인하는 것이 좋습니다. 또한 배열의 선언을 확인하고 검증 상한과 하한. 어레이의 치수가 재조정 된 경우 LBound 과 UBound 액세스를 조건화하는 기능. 색인이 변수 인 경우 변수 이름의 철자를 확인하십시오.
VBA Excel의 배열
솔루션 2 : 요소 수 지정
경우에 따라 오류가 트리거되는 코드의 요소 수를 정의하지 않았을 수 있습니다. 다음을 사용하여 배열의 요소 수를 지정하는 것이 좋습니다. 없음 또는 ReDim 기능.
Dim 및 ReDim을 사용하여 요소 수 지정
솔루션 3 : 구성 변경
이 오류는 일반적으로 사용자가 올바르지 않거나 존재하지 않는 컬렉션 멤버를 지정할 때 트리거됩니다. 따라서 인덱스 요소를 지정하는 대신 ' 각각을 위해… 다음 ”구성.
'For Each… Next'구성 사용
해결 방법 4 : 키 이름 및 색인 확인
경우에 따라 첨자의 축약 형을 사용했고 유효하지 않은 요소를 지정했을 수 있습니다. 따라서 사용하는 것이 좋습니다 유효한 키 이름 과 인덱스 컬렉션.
유효한 키 이름 사용
2 분 읽기