Jelenségek
Ha egy Microsoft Visual Basic for Applications makróban használja a Location (Hely) tulajdonságot vagy a Location.Address (Hely.Cím) függőleges vagy vízszintes oldaltöréseket, a következő hibaüzenet jelenhet meg:
Futásidejű hiba: "9":Alsó index kívül esik a tartományon
A probléma oka
Ez a probléma akkor fordulhat elő, ha a következő feltételek teljesülnek:
-
Az aktív cella a vízszintes oldaltörés felett vagy a HPageBreaks vagy A VPageBreaks index által hivatkozott függőleges oldaltörés bal oldalán található.
-
A függőleges vagy vízszintes oldaltörési hely a képernyőről a látható ablaktól jobbra vagy a munkafüzet látható ablaka alatt található.
-
A Microsoft Excelben az alábbi kódhoz hasonló Visual Basic for Applications makrót használ:
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
Kerülő megoldás
A Microsoft csak illusztrációkhoz kínál programozási példákat, kifejezett vagy hallgatólagos garancia nélkül. Ez magában foglalja, de nem kizárólagosan az egy adott célra való eladhatóságra vagy alkalmasságra vonatkozó vélelmezett garanciákat. Ez a cikk feltételezi, hogy ismeri a bemutatott programozási nyelvet, valamint az eljárások létrehozásához és hibakereséséhez használt eszközöket. A Microsoft támogatási szakemberei segíthetnek elmagyarázni egy adott eljárás funkcióit, de nem módosítják ezeket a példákat, hogy további funkciókat biztosítsanak, és nem hozhatnak létre eljárásokat az Adott követelményeknek megfelelően. A probléma elkerülése érdekében adjon hozzá egy kódot, amely kijelöli a munkalap utolsó celláját, mielőtt a kód a vízszintes vagy függőleges oldaltörések Hely tulajdonságát használná. Például a következő kóddal jelölje ki a végcellát, használja a Location (Hely) tulajdonságot, majd jelölje ki újra az eredeti aktív cellát:
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
A Location (Hely) tulajdonság kiszámítása után ismét kijelölheti az eredeti aktív cellát. Ha kóddal görget az első és az utolsó cella között, vagy kijelöli az utolsó cellát, és azonnal újra kijelöli a kezdő cellát, a hiba továbbra is előfordulhat. A megkerülő megoldás hatékonyságához újra kell rajzolni a képernyőt, és ki kell számítani a Location (Hely) tulajdonságot. Ha a fenti kódot a következővel használja:
Application.ScreenUpdating = False
a képernyő újrarajzlásának megakadályozása érdekében a probléma továbbra is fennáll.
Állapot
A Microsoft megerősítette, hogy ez a probléma „A következőkre vonatkozik:” részben felsorolt Microsoft-termékekre vonatkozik.
További információ
Ha a Count metódust a VPageBreaks vagy a HPageBreaks tulajdonsággal használja, nulla eredményt kaphat. Ez az "Ok" szakaszban felsorolt feltételek mellett történik. Ha oldaltörés látható, a Count metódus helyes választ adhat. A függőleges vagy vízszintes oldaltörések Count metódusa a várt eredményt adja, ha az oldaltörés a munkafüzet ablakának látható részének közelében van. A korábban megadott kerülő megoldás használható a várt szám lekéréséhez.A munkafüzet ablakától jobbra vagy a munkafüzet ablaka alatt található oldaltörések lehetővé tehetik a Count metódus működését és az oldaltörés elhelyezését, ha az ablak és az oldaltörés közötti távolság kisebb, mint az oldaltörések közötti távolság fele.
Hivatkozások
Ha többet szeretne tudni arról, hogy miként csaphatja be a hibákat egy makróban, kattintson a következő cikkszámra a Microsoft Tudásbázisban a cikk megtekintéséhez:
213637 "Hiba esetén" használata makróhibák kezelésére