Symptomen

Wanneer u de eigenschap Location of Location.Address van verticale of horizontale pagina-einden gebruikt in een Microsoft Visual Basic for Applications-macro, wordt mogelijk het volgende foutbericht weergegeven:

Runtimefout '9':Subscript ligt buiten het bereik

Oorzaak

Dit probleem kan optreden als aan de volgende voorwaarden wordt voldaan:

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

  • De locatie van het verticale of horizontale pagina-einde bevindt zich buiten het scherm rechts van het zichtbare venster of onder het zichtbare venster van de werkmap.

  • U gebruikt een Visual Basic for Applications-macro in Microsoft Excel die vergelijkbaar is 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 SubSub 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

Tijdelijke oplossing

Microsoft biedt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. Dit omvat, maar is 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 gedemonstreerd en met de hulpprogramma's die worden gebruikt om procedures te maken en fouten op te sporen. Microsoft-ondersteuningstechnici kunnen helpen bij het uitleggen van de functionaliteit van een bepaalde procedure, maar ze zullen deze voorbeelden niet wijzigen om extra functionaliteit te bieden of procedures te maken die voldoen aan uw specifieke vereisten. U kunt dit probleem voorkomen door code toe te voegen om de laatste cel in het werkblad te selecteren voordat de code de eigenschap Locatie van horizontale of verticale pagina-einden gebruikt. Gebruik bijvoorbeeld de volgende code om de eindcel te selecteren, gebruik de eigenschap Locatie en selecteer vervolgens de oorspronkelijke actieve cel opnieuw:

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

Nadat de eigenschap Locatie is berekend, kunt u opnieuw de oorspronkelijke actieve cel selecteren. Als u code gebruikt om tussen de eerste en laatste cel te schuiven, of de laatste cel selecteert en de begincel onmiddellijk opnieuw selecteert, kan de fout nog steeds optreden. Het scherm moet opnieuw worden getekend en de eigenschap Location moet worden berekend om de tijdelijke oplossing effectief te maken. Als u de bovenstaande code gebruikt met

Application.ScreenUpdating = False

om te voorkomen dat het scherm opnieuw wordt getekend, treedt het probleem nog steeds op.

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 Count gebruikt met de eigenschap VPageBreaks of HPageBreaks, ontvangt u mogelijk een resultaat van nul. Dit gebeurt onder de voorwaarden die worden vermeld in de sectie 'Oorzaak'. Als een pagina-einde zichtbaar is, kan de methode Aantal het juiste antwoord geven. De methode Aantal voor verticale of horizontale pagina-einden kan het verwachte resultaat geven als een pagina-einde zich in de buurt van het zichtbare deel van het werkmapvenster bevindt. De tijdelijke oplossing die u eerder hebt gegeven, kan worden gebruikt om het verwachte aantal te verkrijgen.Pagina-einden die zich rechts van het werkmapvenster of onder het werkmapvenster bevinden, kunnen ervoor zorgen dat de methode Aantal werkt en dat pagina-einde wordt gevonden als de afstand tussen het venster en het pagina-einde kleiner is dan de helft van de afstand tussen pagina-einden.

Verwijzingen

Voor meer informatie over het overvallen van fouten in een macro klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:

213637 'On Error' gebruiken om fouten in een macro af te handelen

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.