Exceli VBA alamleht on levialast väljas

VBA tellija on vahemikust väljas või teab seda peamiselt kui käitusaja viga 9 juhtub siis, kui valime sellise lahtri või lehe või töövihiku, mis tegelikult ei kuulu Excelis määratletud vahemikku või kriteeriumidesse. See on nagu oleksime valinud vahemiku 100 lahtrit või veeru ja oleme kutsunud välja väärtused, mis on salvestatud sama veeru 120 lahtrisse. Mis tähendab, et läheme vahemikku, et valida ja välja kutsuda väärtused, mis pole meie määratletud kriteeriumides. Kui selline olukord juhtub, saame koodi kompileerimise või käitamise ajal teate „Run-Time Error 9”. VBA alamveebis levi vahemikust väljasõnum juhendab meid vea parandamisel, mis on seotud Excelis valitud vahemikuga.

Näide Exceli VBA alaindeksi ulatusest

Allpool on toodud erinevad näited VBA alamkomponendist, mis on Exceli levialast väljas.

Selle VBA alamkataloogi saab vahemikus Exceli mall alla laadida siit - VBA alamteegi väljaspool Exceli malli

VBA alamleht on vahemikust väljas - näide # 1

Kõigepealt kaalume lihtsat näidet. Selleks peame minema VBA akendesse ja lisama uue mooduli, avades menüükäsu Lisa, nagu allpool näidatud.

Saame moodulist valge tühja akna. Siin peame tegema kodeerimistööd.

Kirjutage nüüd teostatud funktsiooni alamkategooria, parimate tavade jaoks hoidke funktsiooni nime alamkategoorias, nagu me siin tegime VBA alajaotise jaoks väljaspool ulatust.

Kood:

 Alam Subscript_OutOfRange1 () Lõpp Alam 

Suuremas osas on meil ainult üks leht nimega Sheet1, nagu allpool näidatud.

Kuid kirjutame koodi, et valida leht, mida isegi pole lisatud, ja vaadata, mis juhtub.

Nüüd minge VBA aknasse ja kirjutage Lehed (2), millele järgneb funktsioon Vali, nagu allpool näidatud. Mis tähendab, et valime funktsiooni Vali teise positsiooni lehe järjestuse.

Kood:

 Sub Subscript_OutOfRange1 () lehed (2) .Vali Sub Sub 

Nüüd kompileerige täielik kood või tehke seda samm-sammult, et teada saada, milles kood on viga. Kuna meil on ainult üks koodirida, saame koodi otse käivitada, klõpsates menüüriba all oleval esitusnupul. Nagu näete allpool, kuvatakse VBA -s veateade, mis ütleb: „ Käivitusaegne viga 9, alaindeks väljaspool ulatust ”.

See näitab, et proovime valida selle lehe, mida pole olemas. Kui lisame uue lehe või muudame lehe järjestuse koodina 2- st 1 -ni, võime koodi edukalt käivitada. Lisame veel ühe lehe ja vaatame, mis juhtub.

Nüüd jälle käivitage kood. Ja kuna me ei näinud ühtegi viga, mis tähendab, et meie kood viib eduka käigu lõpule.

VBA alamleht on vahemikust väljas - näide nr 2

Teises näites näeme jällegi lihtsat koodi töölehe aktiveerimiseks. Selleks kirjutame jälle koodi. Alustage alamkategooria kirjutamist teostatud funktsiooni või mõne muu nime all, nagu allpool näidatud.

Kood:

 Alam Subscript_OutOfRange2 () Lõpp Alam 

Nüüd aktiveerime töölehe abil Sheet1, nagu allpool näidatud.

Kood:

 Sub Subscript_OutOfRange2 () töölehed ("Sheet1"). 

Nüüd kompileerige täielik kood ja käivitage. Märkame, et hüpikteadet pole kuvatud, mis tähendab, et koodi käivitamine on edukas. Paneme nüüd ruumi 1. lehe vahele

Kood uuesti kokku ja käivitage.

Nagu ülal näeme, isegi kui meie täielik protsess ja koodi kirjutamisviis on õige, oleme võtnud korrektse lehe nimeks "Leht 1". Millel tegelikkuses ei ole „Lehe1” vahel ruumi.

See näitab, et vea saamine on endiselt tõenäoline, kui te ei kirjuta ega kirjuta õiget lehe nime ega töövihiku nime.

VBA alamleht on vahemikust väljas - näide # 3

Selles näites näeme, kuidas vale massiivivahemiku valimine võib tekitada ja kuvada käitusaja viga 9. Alustage alamkategooria kirjutamist uuesti teostatud funktsiooni nime all, nagu allpool näidatud.

Kood:

 Alam Subscript_OutOfRange3 () Lõpp Alam 

Nüüd määratlege DIM-i abil mis tahes suurusega massiiv ja anna see stringidele või täisarvudele. Milline sõltub, mida me tahame massiivis, numbrites või tekstis talletada.

Siin on kaalutud 2 × 3 massiivi stringina, nagu allpool näidatud.

Kood:

 Sub Subscript_OutOfRange3 () Dim SubArray (2, 3) kui stringi lõpp Sub 

Selleks moodustab see tabeli 2 rida ja 3 veergu ning saame salvestada kõik väärtused vastavalt vajadusele. Kuna oleme valinud stringi, kaalume selles teksti või tähestikku.

Valige teisel koodireal loodud massiiv, kuid lisa- või enama veeruga ja määrake tekst ABC-na või mõni muu tekst vastavalt teie valikule. Siin oleme valinud massiivi 2 × 5, nagu allpool näidatud.

Kood:

 Sub Subscript_OutOfRange3 () Dim SubArray (2, 3) String SubArray (2, 5) = ABC End Sub 

Nüüd kompileerige ja käivitage kood. Nagu näeme allolevas ekraanipildis, saime VBA alajaotise tõrketeate käitusaja viga 9.

Selle tõrke põhjuseks on asjaolu, et oleme valinud vale massiivi vahemiku 2 lisaveerus vahemikus 2 × 3 kuni 2 × 5, mis ületab koodi piire. Kui nüüd jälle valida õige massiivi vahemik 2 × 3 ja vaadata, mis juhtub.

Pärast koodi kompileerimist ja käitamist. Näeme, et me ei saanud ühtegi viga, mis tähendab, et meie koodisõit õnnestus.

Exceli VBA alaindeksi plussid on levialast väljas

  • VBA alamregister levialast väljas annab meile teada, mis viga on juhtunud. Nii et me leiame konkreetselt saadud veakoodi lahenduse.
  • Kuna VBA alamindeks, mis jääb vahemikku 'Käivitusviga 9', on üsna kasulik, et teada saada, milline viga on excelis aset leidnud.

Asjad, mida meeles pidada

  • Alamkategooriat on soovitatav kasutada täidetava funktsiooni nimes koos koodijadaga, et seda oleks lihtne jälgida.
  • Kirjutatud koodi kaotamise vältimiseks salvestage fail makro-aktiveeritud töövihikuna.
  • Kui teil on tohutu koodirida, siis on parem komponeerida iga koodirida ükshaaval, vajutades klahvi F8. See meetod kompileerib iga koodietapi, nii et saame otse teada, millises koodiosas on tõrge esimesel käigul.

Soovitatavad artiklid

See on olnud teemaks Exceli VBA tellimuste vahemik. Siin arutasime, miks VBA alamveebis leviulatusest tõrge ilmneb (käitusaja viga 9) koos mõnede praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. Kuidas parandada: VBA 1004 viga?
  2. Vigade mõistmine Excelis
  3. VBA Vigade täielik juhend
  4. Funktsiooni IFERROR Excel kasutamine

Kategooria: