Sümptomid

Kui kasutate atribuuti Location või location. Microsoft Visual Standard for Applications makro vertikaalne või horisontaalne leheküljepiiride aadress, võidakse kuvada järgmine tõrketeade:

Run-time error "9": allindeks vahemikust väljas

Põhjus

See probleem võib ilmneda juhul, kui järgmised tingimused on täidetud.

  • Aktiivne lahter on horisontaalse leheküljepiiri kohal või vertikaalsest leheküljepiirist vasakul, millele viitab HPageBreaks või VPageBreaks indeks.

  • Lehe vertikaalne või horisontaalne leheküljepiir asub nähtaval aknast või töövihiku nähtavast aknast paremas servas.

  • Visual Standard for Applications makro Microsoft Excelis sarnaneb järgmise koodiga.

    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

Lahendus

Microsoft pakub programmeerimise näiteid ainult illustreerimiseks, kuid mitte otseseid ega kaudseid. See hõlmab, kuid mitte ainult, kaudseid garantiisid kaubandusliku või sobivuse teatud otstarbeks. Selles artiklis eeldatakse, et olete kursis programmeerimiskeelega, mida näidatakse ning kus on kasutatud tööriistu, mida kasutatakse toimingute loomiseks ja silumiseks. Microsofti tugiteenuste insenerid aitavad selgitada konkreetse protseduuri funktsioone, kuid nad ei muuda neid näiteid, et lisada teie vajadustele vastavaid funktsioone või koostada toiminguid. Selle probleemi vältimiseks lisage kood, mis valib töölehel viimase lahtri, mida kasutati enne, kui kood kasutab horisontaalsete või vertikaalsete leheküljepiiride atribuuti Location . Näiteks kasutage lõpplahtri valimiseks järgmist koodi, kasutage atribuuti asukoht ja seejärel valige algne aktiivne lahter uuesti.

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

Kui atribuut Location on arvutatud, võite uuesti valida algse aktiivse lahtri. Kui kasutate esimesele ja viimasele lahtrile liikumiseks koodi, või valige viimane lahter ja seejärel uuesti lahtris oleva lahtri valimine, võib tõrge siiski ilmneda. Selleks, et lahendus oleks efektiivne, tuleb ekraan uuesti joonistada ja asukoha atribuut arvutada. Kui kasutate eespool toodud koodi

Application.ScreenUpdating = False

ekraani uuesti joonistamise vältimiseks ilmneb probleem endiselt.

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.

Lisateave

Kui kasutate meetodit Count koos atribuudiga VPageBreaks või HPageBreaks , võite saada nulliga tulemi. See toimub jaotises "põhjus" loetletud tingimuste all. Kui leheküljepiir on nähtaval, võib loendamise meetod anda õige vastuse. Vertikaalsete või horisontaalsete leheküljepiiride loendamise meetod võib anda oodatud tulemi, kui leheküljepiir on töövihiku akna nähtava osa lähedal. Varasemat lahendust saab kasutada oodatud arvu saamiseks. Leheküljepiirid, mis on töövihiku aknast paremal või selle all, võivad lubada loendamise viisi ja selle leheküljepiiri paigutada, kui akna kaugus leheküljepiirist on väiksem kui poolik kaugus leheküljepiiride vahel.

Viited

Makros olevate tõrgete kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

213637 Tõrkest "viga" kasutamine makros vigadega tegelemiseks

Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Kui rahul te tõlkekvaliteediga olete?
Mis mõjutas teie kasutuskogemust?

Täname tagasiside eest!

×