Excel VBA Абонамент извън обхвата

VBA абонамент извън обхвата или най -вече знае като Грешка при изпълнение на време 9 се случва, когато изберете такава клетка или лист или работна книга, която всъщност не попада в обхвата или критериите, определени в Excel. Сякаш сме избрали диапазона от 100 клетки или колона и сме извикали стойностите, съхранявани в 120 клетки от една и съща колона. Което означава, че излизаме извън обхвата, за да избираме и извикваме стойностите, които не са в нашите дефинирани критерии. Когато се случи подобна ситуация, получаваме съобщение „Run-Time Error 9“, докато компилираме или изпълняваме кода. VBA подпис извън съобщението за грешка в обхвата ни насочва да поправим грешката, която е свързана с диапазона, който сме избрали в Excel.

Пример за Excel VBA абонамент извън обхвата

По-долу са дадени различните примери за VBA абонамент извън обхвата в Excel.

Можете да изтеглите този абонамент за VBA извън шаблона на диапазон Excel тук - Индекс на VBA извън шаблон на диапазон Excel

VBA Абонамент извън обхват - Пример №1

Първо ще разгледаме прост пример. За целта трябва да отидем на прозорци на VBA и да добавим нов модул, като влезете в менюто Вмъкване, както е показано по-долу.

Ще получим бял празен прозорец на Модул. Това е мястото, където трябва да вършим работа по кодирането.

Сега напишете Подкатегория на изпълнената функция, за най-добра практика запазете името на функция в Подкатегория, както направихме тук за VBA Subscript извън обхвата.

Код:

 Sub Subscript_OutOfRange1 () Край Sub 

Тук в excel имаме само един лист, наречен „Sheet1“, както е показано по-долу.

Но ще напишем код, за да изберем лист, който дори не е добавен и да видим какво ще се случи.

Сега отидете на прозореца на VBA и напишете Таблици (2), последвани от функция Select, както е показано по-долу. Което означава, че избираме последователност на листа от 2- ро положение с функция Select.

Код:

 Sub Subscript_OutOfRange1 () Листове (2) .Изберете край Sub 

Сега компилирайте пълния код или го направете стъпка по стъпка, за да знаете коя част от кода е грешка. Тъй като имаме само един ред код, можем директно да стартираме кода, като кликнем върху бутона за възпроизвеждане под лентата на менюто. Ще получите съобщение за грешка, казващо: „ Грешка по време на изпълнение 9, индекс извън обхвата “ във VBA, както е показано по-долу.

Това показва, че се опитваме да изберем този лист, който не съществува. Ако добавим нов лист или променим последователността на листа в код от 2- ро на 1- во, тогава може да получим успешно изпълнение на код. Нека добавим още един лист и да видим какво ще се случи.

Сега отново стартирайте кода. И тъй като не видяхме никаква грешка, което означава, че кодът ни завършва успешното изпълнение.

VBA абонамент извън обхват - пример №2

В друг пример ще видим отново прост код за активиране на Работен лист. За това отново ще напишем кода. Започнете да пишете подкатегорията в името на изпълнена функция или в друго име, както е показано по-долу.

Код:

 Sub Subscript_OutOfRange2 () Край Sub 

Сега с помощта на Работен лист ще активираме Sheet1, както е показано по-долу.

Код:

 Sub Subscript_OutOfRange2 () Работни листове ("Sheet1"). Активиране на крайния Sub 

Сега компилирайте пълния код и стартирайте. Ще забележим, че няма изскачащо съобщение за грешка, което означава, че стартирането на кода е успешно. Сега нека поставим пространството между „Лист 1“

Отново компилирайте и стартирайте кода.

Както можем да видим по-горе, дори ако пълният ни процес и начин на писане на кода са правилни, но сме приели правилното име на листа като „Лист 1“. Което в действителност няма място между „Sheet1“.

Това показва, все още има шансове да получите грешка, ако не пишете или пишете правилно име на лист или име на работна книга.

VBA абонамент извън обхват - пример №3

В този пример ще видим как изборът на неправилен диапазон на масива може да създаде и да покаже грешка при изпълнение на работата 9. Започнете отново да пишете подкатегория в името на изпълнената функция, както е показано по-долу.

Код:

 Sub Subscript_OutOfRange3 () Край Sub 

Сега с помощта на DIM определете масив от всякакъв размер и го дава на String или Integers. Което зависи, какво искаме да съхраняваме в масив, числа или текст.

Тук сме разгледали масив от 2 × 3 като String, както е показано по-долу.

Код:

 Sub Subscript_OutOfRange3 () Dim SubArray (2, 3) като String End Sub 

По този начин тя ще формира таблица за 2 реда и 3 колони и можем да съхраняваме всякакви стойности според нашите нужди. Тъй като сме избрали String, тогава ще разгледаме текст или азбуки в него.

Сега във втория ред на кода изберете създадения масив, но с допълнителна или повече колона и присвойте текст като ABC или какъвто и да е друг текст по ваш избор. Тук сме избрали масив от 2 × 5, както е показано по-долу.

Код:

 Sub Subscript_OutOfRange3 () Dim SubArray (2, 3) Като String SubArray (2, 5) = ABC End Sub 

Сега компилирайте и стартирайте кода. Както можем да видим по-долу на екрана, получихме VBA подпис извън съобщение за грешка в обхвата на грешка 9 по време на изпълнение.

Причината за получаването на тази грешка е, защото сме избрали неправилен диапазон на масив в рамките на 2 допълнителни колони от 2 × 3 до 2 × 5, което е извън границите на кода. Сега, ако отново изберем правилния обхват на масива като 2 × 3 и ще видим какво ще се случи.

След компилиране и стартиране на кода. Ще видим, че не получихме никаква грешка, което означава, че изпълнението на кода ни беше успешно.

Плюсове на Excel VBA Абонамент извън обхвата

  • VBA абонамент извън обхвата ни позволява да знаем каква грешка е станала. За да можем конкретно да намерим решението на получения код за грешка.
  • Тъй като VBA индексът е извън диапазона „Грешка при изпълнение на време 9“, е доста полезно да разберем каква грешка е възникнала в excel.

Неща, които трябва да запомните

  • Препоръчва се да използвате Подкатегория в името на изпълняваната функция с последователност от код, така че да бъде лесно да я проследите правилно.
  • Запишете файла като Макро-активирана работна книга, за да не загубите писмен код.
  • Ако имате огромни редове от код, тогава е по-добре да компилирате всеки ред код един по един, като натиснете клавиша F8. Този метод компилира всяка стъпка на кода, така че можем да знаем директно коя част от кода всъщност има грешката при първия ход.

Препоръчителни статии

Това е ръководство за Excel VBA Subscript извън обхвата. Тук обсъдихме защо се появява грешка на VBA извън диапазон (Грешка при изпълнение на време 9) заедно с някои практически примери и шаблон за excel за изтегляне. Можете да разгледате и другите ни предложени статии -

  1. Как да поправим грешката: VBA 1004?
  2. Разбиране на грешки в Excel
  3. Пълно ръководство за VBA при грешка
  4. Използване на IFERROR Excel функция

Категория: