Pri používaní funkcie HPageBreaks alebo VPageBreaks.Location v Exceli sa zobrazí chybové hlásenie Dolný index je mimo rozsahu

Príznaky

Keď použijete vlastnosť Umiestnenie alebo Adresa.Adresa zvislých alebo vodorovných zlomov strán v makre Microsoft Visual Basic for Applications, môže sa zobraziť nasledujúce chybové hlásenie:

Poznámka

Chyba 9 počas runtime:
Dolný index mimo rozsahu

Príčina

Tento problém sa môže vyskytnúť, ak sú splnené nasledujúce podmienky:

  • Aktívna bunka sa nachádza nad vodorovným zlomom strany alebo naľavo od zvislého zlomu strany, na ktorý odkazuje index HPageBreaks alebo VPageBreaks.

  • Umiestnenie zvislého alebo vodorovného zlomu strany sa nachádza mimo obrazovky napravo od viditeľného okna alebo pod viditeľným oknom zošita.

  • V Microsoft Exceli použite makro Visual Basic for Applications podobné nasledujúcemu kódu:

    Sub TestHorizontal()
        ActiveSheet.Range("CZ1000").Value = 1
        MsgBox ActiveSheet.HPageBreaks.Count
        MsgBox ActiveSheet.HPageBreaks(1).Location.Address
        MsgBox ActiveSheet.HPageBreaks(2).Location.Address
    End 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.Address
    End Sub
    
    

Alternatívne riešenie

Spoločnosť Microsoft poskytuje príklady programovania len pre ilustráciu bez výslovnej alebo implicitnej záruky. To sa týka (okrem iného) aj implicitných záruk obchodovateľnosti alebo vhodnosti na konkrétny účel. Článok predpokladá, že poznáte predvádzaný programovací jazyk a nástroje, ktoré sa používajú na vytváranie a ladenie procedúr. Pracovníci technickej podpory spoločnosti Microsoft vám môžu pomôcť vysvetliť funkčnosť konkrétneho postupu, tieto príklady však nebudú upravovať, aby poskytovali ďalšie funkcie alebo zostavili procedúry podľa vašich špecifických požiadaviek.
Ak chcete predísť tomuto problému, pridajte kód a vyberte poslednú bunku použitú v hárku predtým, než kód použije vlastnosť Umiestnenie pre vodorovné alebo zvislé zlomy strán. Pomocou nasledovného kódu vyberte napríklad koncovú bunku, použite vlastnosť Umiestnenie a potom znova vyberte pôvodnú aktívnu bunku:

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.Select

End Sub

Po vypočítaní vlastnosti Miesto môžete znova vybrať pôvodnú aktívnu bunku. Ak použijete kód na posúvanie medzi prvou a poslednou bunkou alebo vyberiete poslednú bunku a okamžite znova vyberiete počiatočnú bunku, chyba sa môže vyskytovať aj napriek tomu. Aby bolo alternatívne riešenie účinné, musí obrazovka prekresliť a vypočítať vlastnosť Miesto. Ak použijete vyššie uvedený kód s

Application.ScreenUpdating = False

Problém sa vyskytuje aj naďalej, aby sa zabránilo prekresľovaniu obrazovky.

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.

Ďalšie informácie

Ak použijete metódu Count s vlastnosťou VPageBreaks alebo HPageBreaks, môže sa zobraziť výsledok nula. Stáva sa to za podmienok uvedených v časti Príčina. Ak sa zlom strany zobrazuje, metóda počítania môže vrátiť správnu odpoveď. Metóda spočítania pre zvislé alebo vodorovné zlomy strán môže poskytnúť očakávaný výsledok, ak sa zlom strany nachádza v blízkosti viditeľnej časti okna zošita. Na získanie očakávaného počtu možno použiť alternatívne riešenie uvedené vyššie.

Zlomy strán, ktoré sa nachádzajú napravo od okna zošita alebo pod oknom zošita, môžu umožniť fungovanie metódy počítania a umiestnenie zlomu strany, ak je vzdialenosť medzi oknom a zlomom strany menšia ako polovica vzdialenosti medzi zlomami strán.

Odkazy

Ďalšie informácie o zachytávaní chýb v makre sa nachádzajú v nasledujúcom článku databázy Microsoft Knowledge Base:

213637 Používanie funkcie Pri chybe na spracovanie chýb v makre