증상
위치 속성 또는 위치를 사용 하는 경우 Microsoft Visual Basic for Applications 매크로의 세로 또는 가로 페이지 나누기 주소 에는 다음과 같은 오류 메시지가 표시 될 수 있습니다.
런타임 오류 ' 9 ': 첨자가 범위를 벗어났습니다.
원인
이 문제는 다음 조건에 해당 하는 경우에 발생할 수 있습니다.
-
활성 셀이 가로 페이지 나누기 또는 HPageBreaks 또는 VPageBreaks index로 참조 되는 세로 페이지 나누기의 왼쪽에 있습니다.
-
세로 또는 가로 페이지 나누기 위치가 보이는 창의 오른쪽 또는 통합 문서의 표시 창 아래에 있는 화면을 벗어났습니다.
-
다음 코드와 유사 하 게 Microsoft Excel의 Visual Basic for Applications 매크로를 사용 합니다.
Sub TestHorizontal() ActiveSheet.Range("CZ1000").Value = 1 MsgBox ActiveSheet.HPageBreaks.Count MsgBox ActiveSheet.HPageBreaks(1).Location.Address MsgBox ActiveSheet.HPageBreaks(2).Location.AddressEnd Sub Sub TestVertical() ActiveSheet.Range("CZ1000").Value = 1 MsgBox ActiveSheet.VPageBreaks.Count MsgBox ActiveSheet.VPageBreaks(1).Location.Address MsgBox ActiveSheet.VPageBreaks(2).Location.Address MsgBox ActiveSheet.VPageBreaks(3).Location.AddressEnd Sub
해결 방법
Microsoft는 설명 하거나 암시 하는 보증 없이 설명을 위한 프로그래밍 예제를 제공 합니다. 여기에는 상품성 또는 특정 목적에의 적합성에 대 한 묵시적 보증을 포함 하지만이에 국한 되지 않습니다. 이 문서에서는 프로시저를 만들고 디버깅 하는 데 사용 되는 도구를 사용 하 여 사용자가 시연 하는 프로그래밍 언어에 대해 잘 알고 있다고 가정 합니다. Microsoft 지원 엔지니어가 특정 프로시저의 기능을 설명 하는 데 도움이 되지만, 추가 기능을 제공 하거나 특정 요구 사항에 맞게 프로시저를 구성 하기 위해 이러한 예제를 수정 하지는 않습니다. 이 문제가 발생 하지 않도록 하려면 코드에서 가로 또는 세로 페이지 나누기의 Location 속성을 사용 하기 전에 워크시트에 사용 된 마지막 셀을 선택 하는 코드를 추가 합니다. 예를 들어 다음 코드를 사용 하 여 끝 셀을 선택 하 고 Location 속성을 사용한 다음 원본 활성 셀을 다시 선택 합니다.
Sub CheckPageBreaks() 'Set object "currcell" equal to active cell. Set currcell = ActiveCell 'Select the last cell on the worksheet that has data. Range("IV65536").Select 'Include code with Location property here. x = ActiveSheet.HPageBreaks(2).Location.Address MsgBox x 'Example sets x equal to address of second horizontal page break. 'Then message box displays the address of the page break. 'Select original active cell. currcell.SelectEnd Sub
Location 속성이 계산 된 후에는 원래 활성 셀을 다시 선택할 수 있습니다. 코드를 사용 하 여 첫 번째 및 마지막 셀 사이를 스크롤하거나 마지막 셀을 선택 하 고 바로 시작 셀을 다시 선택할 경우 오류가 계속 발생할 수 있습니다. 해결 방법을 적용 하려면 화면을 다시 그려야 하 고 위치 속성을 계산 해야 합니다. 위의 코드를 사용 하는 경우
Application.ScreenUpdating = False
화면 재생을 방지 하기 위해 문제가 계속 발생 합니다.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
추가 정보
VPageBreaks 또는 HPageBreaks 속성에 Count 메서드를 사용 하는 경우 0의 결과가 나타날 수 있습니다. 이는 "원인" 섹션에 나열 된 조건 하에서 발생 합니다. 페이지 나누기가 표시 되 면 Count 메서드에서 올바른 답을 제공할 수 있습니다. 페이지 나누기가 통합 문서 창의 표시 되는 부분 근처에 있는 경우에는 세로 또는 가로 페이지 나누기에 대 한 Count 메서드에서 예상 결과를 얻을 수 있습니다. 이전에 제공 된 해결 방법을 사용 하 여 예상 되는 횟수를 구할 수 있습니다. 창에서 페이지 나누기 까지의 거리가 페이지 나누기 사이의 거리의 1/2 미만이 면 통합 문서 창 또는 통합 문서 창 아래에 있는 페이지 나누기를 사용 하 여 Count 메서드가 작동 하 고 해당 페이지 나누기를 찾을 수 있습니다.
참조
매크로에서 오류를 포착 하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
213637 "오류 발생"을 사용 하 여 매크로의 오류 처리 방법