Příznaky
Když použijete vlastnost nebo umístění umístění , může se zobrazit následující chybová zpráva: na adrese v makru jazyka Microsoft Visual Basic for Applications .
Chyba za běhu "9": dolní index je mimo rozsah
Příčina
K tomuto problému může dojít, pokud jsou splněné následující podmínky:
-
Aktivní buňka je nad vodorovným koncem stránky nebo nalevo od svislého konce stránky, na které odkazuje index HPageBreaks nebo VPageBreaks .
-
Svislý nebo vodorovný konec stránky je mimo obrazovku vpravo od viditelného okna nebo pod viditelným oknem sešitu.
-
Makro v jazyce Visual Basic for Applications se používá v Microsoft Excelu podobně jako v následujícím kódu:
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
Alternativní řešení
Společnost Microsoft nabízí příklady programování pouze pro ilustraci bez záruky výslovně uvedené nebo implicitně předpokládaných. To zahrnuje, ale není omezeno na implicitně odvozené záruky obchodovatelnosti nebo vhodnosti pro určitý účel. V tomto článku se předpokládá, že jste obeznámeni s programovacím jazykem, který se vám seznámí, a s nástroji, které se používají k vytváření a ladění procedur. Pracovníci podpory Microsoftu můžou vysvětlit funkce určitého postupu, ale nebudou tyto příklady poskytovat, aby poskytovaly vaše konkrétní požadavky. Chcete-li předejít tomuto problému, přidejte kód pro výběr poslední buňky použité v listu předtím, než kód použije vlastnost umístění pro vodorovné nebo svislé konce stránky. Pokud například chcete vybrat koncovou buňku, použijte následující kód a pak znovu vyberte Location původní aktivní buňku:
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
Po výpočtu vlastnosti Location můžete znovu vybrat původní aktivní buňku. Pokud použijete kód k posunu mezi první a poslední buňkou nebo vyberete poslední buňku a okamžitě znovu vyberete počáteční buňku, může dojít k chybě. Abyste mohli alternativní řešení platit, je nutné překreslit obrazovku a vlastnost umístění . Pokud použijete uvedený kód s
Application.ScreenUpdating = False
abyste zabránili překreslování obrazovky, dochází k problému.
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Další informace
Pokud použijete metodu Count s vlastností VPageBreaks nebo HPageBreaks , může se zobrazit výsledek 0. K tomu dochází za podmínek uvedených v části Příčina. Pokud je zobrazen konec stránky, může metoda Count poskytnout správnou odpověď. Metoda Count pro vertikální nebo vodorovná zalomení stránky může mít očekávaný výsledek, pokud je konec stránky poblíž viditelné části okna sešitu. K získání očekávaného počtu lze použít předchozí alternativní řešení. Konce stránek, které jsou napravo od okna sešitu nebo pod oknem sešitu, mohou povolit metodu Count pro práci a konec stránky, pokud je vzdálenost od okna po konec stránky menší než polovina vzdálenosti mezi konci stránky.
Odkazy
Další informace o soutisku chyb v makru najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
213637 Zpracování chyb v makru pomocí funkce On Error