Индекс VBA Excel вне диапазона

Индекс VBA вне диапазона или, как правило, известен как ошибка времени выполнения 9, возникает, когда мы выбираем такую ​​ячейку, лист или книгу, которые на самом деле не соответствуют диапазону или критериям, определенным в Excel. Как будто мы выбрали диапазон из 100 ячеек или столбца, и мы вызвали значения, хранящиеся в 120 ячейках того же столбца. Это означает, что мы выходим за пределы диапазона, чтобы выбрать и вызвать значения, которые не входят в наши определенные критерии. Когда возникает такая ситуация, мы получаем сообщение «Ошибка выполнения 9» во время компиляции или запуска кода. Сообщение об ошибке VBA Subscript out of Range поможет нам исправить ошибку, связанную с диапазоном, выбранным в Excel.

Пример индекса VBA Excel вне диапазона

Ниже приведены различные примеры VBA Subscript вне диапазона в Excel.

Вы можете скачать этот VBA Subscript вне шаблона Excel здесь - VBA Subscript вне шаблона Excel

Индекс VBA вне диапазона - пример № 1

Сначала рассмотрим простой пример. Для этого нам нужно перейти в окна VBA и добавить новый модуль, выбрав пункт меню «Вставка», как показано ниже.

Мы получим белое пустое окно модуля. Это где мы должны сделать работу кодирования.

Теперь напишите «Подкатегория выполняемой функции», для лучшей практики сохраните имя функции в «Подкатегории», как мы делали здесь для VBA Subscript вне диапазона.

Код:

 Sub Subscript_OutOfRange1 () End Sub 

Здесь, в Excel, у нас есть только один лист с именем «Лист1», как показано ниже.

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

Теперь перейдите в окно VBA и напишите Sheets (2), а затем выберите функцию Select, как показано ниже. Это означает, что мы выбираем последовательность листов 2- й позиции с помощью функции выбора.

Код:

 Sub Subscript_OutOfRange1 () Sheets (2). Выберите End Sub 

Теперь скомпилируйте полный код или сделайте это шаг за шагом, чтобы узнать, какая часть кода является ошибкой. Поскольку у нас есть только одна строка кода, мы можем напрямую запустить код, нажав кнопку воспроизведения под строкой меню. Мы получим сообщение об ошибке « V-Time error 9, Subscript out of range » в VBA, как показано ниже.

Это показывает, что мы пытаемся выбрать тот лист, который не существует. Если мы добавим новый лист или изменим последовательность листов в коде со 2- го на 1- й, то мы можем получить успешный запуск кода. Давайте добавим еще один лист и посмотрим, что произойдет.

Теперь снова запустите код. И поскольку мы не увидели никакой ошибки, это означает, что наш код завершает успешный запуск.

Индекс VBA вне диапазона - пример № 2

В другом примере мы снова увидим простой код активации рабочего листа. Для этого снова напишем код. Начните писать Подкатегорию в названии выполняемой функции или в любом другом имени, как показано ниже.

Код:

 Sub Subscript_OutOfRange2 () End Sub 

Теперь с помощью Worksheet мы активируем Sheet1, как показано ниже.

Код:

 Sub Subscript_OutOfRange2 () Рабочие листы ("Sheet1"). Активировать конечную Sub 

Теперь скомпилируйте полный код и запустите. Мы заметим, что не появилось сообщение об ошибке, что означает, что выполнение кода прошло успешно. Теперь давайте поместим пространство между «Листом 1»

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

Как мы видим выше, даже если наш полный процесс и способ написания кода верны, но мы взяли правильное имя листа как «Лист 1». Который на самом деле не имеет места между «Лист1».

Это показывает, что все еще есть шансы получить ошибку, если не написать или написать правильное имя листа или имя книги.

Индекс VBA вне диапазона - пример № 3

В этом примере мы увидим, как выбор неправильного диапазона массива может создать и показать ошибку времени выполнения 9. Начать снова писать подкатегорию в имени выполняемой функции, как показано ниже.

Код:

 Sub Subscript_OutOfRange3 () End Sub 

Теперь с помощью DIM определите массив любого размера и передайте его в строку или целое число. Что зависит от того, что мы хотим хранить в массиве, числа или текст.

Здесь мы рассмотрели массив 2 × 3 как String, как показано ниже.

Код:

 Sub Subscript_OutOfRange3 () Dim SubArray (2, 3) As Sub String End Sub 

Таким образом, он сформирует таблицу для 2 строк и 3 столбцов, и мы можем хранить любые значения в соответствии с нашими потребностями. Поскольку мы выбрали строку, то мы будем рассматривать текст или алфавиты в нем.

Теперь во второй строке кода выберите созданный массив, но с дополнительным или большим столбцом и назначьте текст как ABC или любой другой текст по вашему выбору. Здесь мы выбрали массив 2 × 5, как показано ниже.

Код:

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

Теперь скомпилируйте и запустите код. Как мы можем видеть на скриншоте ниже, мы получили сообщение об ошибке VBA Subscript of Range в Run-time error 9.

Причина получения этой ошибки заключается в том, что мы выбрали неверный диапазон массива в пределах 2 дополнительных столбцов от 2 × 3 до 2 × 5, что выходит за пределы кода. Теперь, если мы снова выберем правильный диапазон массива как 2 × 3 и посмотрим, что произойдет.

После компиляции и запуска кода. Мы увидим, что не получили никакой ошибки, что означает, что наш код был успешно выполнен.

Плюсы Excel VBA Subscript вне диапазона

  • Индекс VBA вне диапазона позволяет нам узнать, что за ошибка произошла. Так что мы можем конкретно найти решение полученного кода ошибки.
  • Поскольку индекс VBA выходит за пределы диапазона «Ошибка времени выполнения 9», очень полезно знать, какая ошибка произошла в Excel.

То, что нужно запомнить

  • Рекомендуется использовать подкатегорию в имени выполняемой функции с последовательностью кода, чтобы ее было легко отслеживать.
  • Сохраните файл как Macro-Enabled Workbook, чтобы избежать потери написанного кода.
  • Если у вас огромные строки кода, лучше скомпилировать каждую строку кода одну за другой, нажав клавишу F8. Этот метод компилирует каждый шаг кода, чтобы мы могли сразу узнать, какая часть кода действительно имеет ошибку с первого раза.

Рекомендуемые статьи

Это было руководство по Excel VBA Subscript вне диапазона. Здесь мы обсудили причину возникновения ошибки VBA Subscript out of Range (Ошибка времени выполнения 9), а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

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

Категория: