U ontvangt een foutbericht ' subscript buiten bereik ' wanneer u HPageBreaks of VPageBreaks gebruikt. locatie in Excel

Symptomen

Wanneer u de eigenschap Location of locatie gebruikt in een Microsoft Visual Basic for Applications-macro, wordt mogelijk het volgende foutbericht weergegeven:

Runtimefout ' 9 ': subscript buiten het bereik

Oorzaak

Dit probleem kan zich voordoen als aan de volgende voorwaarden wordt voldaan:

  • De actieve cel bevindt zich boven het horizontale pagina-einde of links van het verticaal pagina-einde waarnaar wordt verwezen door de index HPageBreaks of VPageBreaks .

  • De locatie van het verticale of horizontale pagina-einde is het scherm rechts van het zichtbare venster of onder het venster met zichtbare vensters van de werkmap.

  • U gebruikt een VBA-macro (Visual Basic for Applications) in Microsoft Excel, vergelijkbaar met de volgende code:

    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

Workaround

Microsoft biedt programmeervoorbeelden voor slechts één afbeelding, zonder garanties die geheel of impliciet zijn aangegeven. Dit geldt ook voor maar niet beperkt tot de impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal die wordt aangetoond en met de hulpmiddelen voor het maken en gebruiken van debug-procedures. Microsoft ondersteuningstechnici kunnen u helpen de functionaliteit van een bepaalde procedure te uitleggen, maar deze voorbeelden worden niet gewijzigd om extra functionaliteit te bieden of een constructie procedure te bieden aan uw specifieke vereisten. Om dit probleem te voorkomen, voegt u code toe om de laatste gebruikte cel in het werkblad te selecteren voordat de code de eigenschap Location van de horizontale of verticale pagina-einden gebruikt. Gebruik bijvoorbeeld de volgende code om de cel te selecteren, gebruik de eigenschap Location en de oorspronkelijke actieve cel opnieuw te selecteren:

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

Wanneer de eigenschap Location wordt berekend, kunt u de oorspronkelijke actieve cel opnieuw selecteren. Als u met code naar de eerste en laatste cel schuift, of als u de laatste cel selecteert en de begincel direct opnieuw selecteert, wordt de fout mogelijk nog steeds weergegeven. Het scherm moet opnieuw worden getekend en de eigenschap Location wordt berekend zodat de tijdelijke oplossing van kracht wordt. Als u de bovenstaande code gebruikt met

Application.ScreenUpdating = False

Als u wilt voorkomen dat u een scherm vernieuwt, doet u het probleem nog steeds.

Status

Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.

Meer informatie

Als u de methode aantal met de eigenschap VPageBreak of HPageBreaks gebruikt, krijgt u mogelijk een resultaat van nul. Dit gebeurt onder de voorwaarden die worden vermeld in de sectie oorzaak. Als u een pagina-einde kunt weergeven, kan het juiste antwoord worden weergegeven met de methode Count . De methode aantal voor verticaal of horizontaal pagina-einden kan het verwachte resultaat opleveren als een pagina-einde zich dicht bij het zichtbare deel van het werkmapvenster bevindt. De tijdelijke oplossing die eerder is opgegeven kan worden gebruikt om het verwachte aantal te verkrijgen. Met pagina-einden die zich rechts van het werkmapvenster of onder het werkmapvenster bevindt, wordt mogelijk de methode aantal en het pagina-einde voor het pagina-einde van de afstand tussen pagina-einden ingeschakeld.

Verwijzingen

Als u wilt weten hoe u fouten in een macro ondervangt, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:

213637 Hoe kan ik bij fout gebruiken om fouten in een macro af te handelen

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

×