Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

Simptomai

Kai naudojate vietos ypatybę arba vietą. vertikalių arba horizontalių puslapio lūžių adresas "Microsoft Visual Basic for Applications" makrokomandos, galite gauti šį klaidos pranešimą:

Vykdymo laiko klaida ' 9 ': indeksas yra iš intervalo

Priežastis

Ši problema gali kilti esant šioms sąlygoms:

  • Aktyvus langelis viršija horizontalų puslapio lūžį arba į kairę nuo vertikalaus puslapio lūžio, nurodyto " Hpagebreaks " arba " vpagebreaks " indekse.

  • Vertikaliosios arba horizontaliosios puslapio lūžio vieta yra išjungta ekrano dešinėje matomame lange arba žemiau matomame darbaknygės lange.

  • Galite naudoti "Visual Basic for Applications" makrokomandą programoje "Microsoft Excel", panašią į šį kodą:

    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

Sprendimas

"Microsoft" teikia programavimo pavyzdžius tik iliustracijoje, bet nepareikšta arba numanomų garantijų. Tai yra, bet neapsiribojant, numanomas garantijas dėl tinkamumo parduoti ar konkrečiam tikslui. Šiame straipsnyje daroma prielaida, kad esate susipažinę su rodoma programavimo kalba ir įrankiais, naudojamais procedūroms kurti ir derinti. "Microsoft" palaikymo inžinieriai gali padėti paaiškinti konkrečios procedūros funkcionalumą, tačiau jie nekeis šių pavyzdžių, kad pateiktų papildomas funkcijas arba sukurtų procedūras, atitinkančias konkrečius jūsų reikalavimus. Norėdami išvengti šios problemos, įtraukite kodą, kad pažymėtumėte paskutinį darbalapyje naudotą langelį, kol kodas naudoja horizontalių arba vertikalių puslapių lūžių vietą . Pavyzdžiui, naudokite šį kodą, kad pažymėtumėte galutinį langelį, naudokite ypatybę vieta , tada iš naujo pasirinkite pirminį aktyvų langelį:

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

Kai vietos ypatybė bus apskaičiuota, galite dar kartą pasirinkti pirminį aktyvų langelį. Jei norite slinkti tarp pirmo ir paskutinio langelio naudodami kodą, arba pažymėkite paskutinį langelį ir tuoj pat iš naujo pasirinkti pradinį langelį, klaida vis tiek gali įvykti. Ekranas turi būti nubraižytas ir vietos ypatybė turi būti apskaičiuota taip, kad sprendimas būtų efektyvus. Jei naudojate aukščiau esantį kodą

Application.ScreenUpdating = False

kad būtų išvengta ekrano perbraižymo, problema vis dar kyla.

Statusą

"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.

Daugiau informacijos

Jei naudojate skaičiavimo metodą su ypatybe vpagebreaks arba hpagebreaks , galite gauti nulį. Tai įvyksta dalyje "priežastis" nurodytos sąlygos. Jei matomas puslapio lūžis, skaičiavimo metodas gali duoti teisingą atsakymą. Jei puslapio lūžis yra šalia matomos darbaknygės lango dalies, skaičiavimo metodas vertikaliesiems arba horizontaliesiems puslapio lūžiams gali duoti numatomą rezultatą. Anksčiau pateiktą sprendimo būdą galima naudoti norint gauti numatomą skaičių. Puslapio lūžiai, kurie yra į dešinę nuo darbaknygės lango arba po darbaknygės langu, gali įgalinti skaičiavimo metodą veikti ir šio puslapio lūžio vieta, jei atstumas nuo lango iki puslapio lūžio yra mažesnis nei pusė atstumo tarp puslapių lūžių.

Nuorodos

Jei reikia daugiau informacijos apie tai, kaip perdengti makrokomandų klaidas, spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:

213637 Kaip naudoti "klaida" makrokomandos klaidoms apdoroti

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×