Simptomi
Kada koristite svojstvo mjesto ili mjesto. adresa okomitih ili vodoravnih prijeloma stranica u makronaredbi programa Microsoft Visual Basic for Applications, možda će vam se prikazati sljedeća poruka o pogrešci:
Pogreška programa run-time ' 9 ': indeks izvan raspona
Uzrok
Taj se problem može pojaviti ako su ispunjeni sljedeći uvjeti:
-
Aktivna ćelija iznad vodoravnog prijeloma stranice ili s lijevog ruba okomitog prijeloma stranice na koju se upućuje indeksi hpagebreaksa ili vpagebreaksa .
-
Okomito ili vodoravno mjesto prijeloma stranice izvan je zaslona s desne strane vidljivog prozora ili ispod vidljivog prozora radne knjige.
-
U programu Microsoft Excel koristite makronaredbu Visual Basic for Applications, slična je sljedećem kodu:
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
Zaobilazno rješenje
Microsoft nudi primjere programiranja samo za ilustraciju, bez jamstva ili izražena ili implicirana. To obuhvaća, ali nije ograničeno na implicirana jamstva o prodaji ili prikladnosti za određenu namjenu. U ovom se članku pretpostavlja da ste upoznati s programskim jezikom koji se pokazuje i alatima koji se koriste za stvaranje i ispravljanje pogrešaka u postupcima. Microsoftovi inženjeri za podršku mogu pomoći u objašnjavanju funkcionalnosti određenog postupka, ali neće izmijeniti ove primjere radi pružanja dodane funkcionalnosti ili procesa konstruiranja radi ispunjivanja specifičnih zahtjeva. Da biste spriječili taj problem, dodajte kod da biste odabrali zadnju ćeliju korištnu na radnom listu prije nego što kod koristi svojstvo lokacije vodoravnih ili okomitih prijeloma stranice. Primjerice, pomoću sljedećeg koda odaberite kraj ćelije, koristite svojstvo mjesto , a zatim ponovno odaberite izvornu aktivnu ćeliju:
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
Nakon izračuna svojstva lokacije , ponovno možete odabrati izvornu aktivnu ćeliju. Ako koristite kod za pomicanje između prve i posljednje ćelije ili odaberite zadnju ćeliju i odmah ponovno odaberite početnu ćeliju, pogreška se možda i dalje pojavljuje. Zaslon mora biti ponovno, a svojstvo lokacije izračunava se da bi zaobilazno rješenje bilo učinkovito. Ako koristite gore navedeni kod s
Application.ScreenUpdating = False
problem se i dalje pojavljuje da bi se spriječio redsirovi zaslon.
Status
Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".
Dodatne informacije
Ako koristite metodu Count uz svojstvo vpagebreaks ili hpagebreaks , možda ćete dobiti rezultat nule. To se događa u odjeljku uvjeti navedeni u odjeljku "uzrok". Ako je prijelom stranice vidljiv, način Brojanje može dati točan odgovor. Metoda Count za okomite ili vodoravne prijelome stranica može dati očekivani rezultat ako je prijelom stranice blizu vidljivog dijela prozora radne knjige. Zaobilazno rješenje koje je prethodno dato može se koristiti za dohvaćanje očekivanog broja. Prijelomi stranica koji se nalaze desno od prozora radne knjige ili ispod prozora radne knjige mogu omogućiti rad na radu i prijelom stranice ako je udaljenost od prozora do prijeloma stranice manje od jedne polovice udaljenosti između prijeloma stranice.
Reference
Dodatne informacije o tome kako zarobiti pogreške u makronaredbi potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:
213637 Korištenje pogreške "na pogrešci" radi rukovanja pogreškama u makronaredbi