Нижний индекс VBA вне допустимого диапазона

Подстрочный индекс Excel VBA вне допустимого диапазона

Индекс вне диапазона — это ошибка, с которой мы сталкиваемся в VBA, когда пытаемся сослаться на что-то или на переменную, которая не существует в коде, например, предположим, что у нас нет переменной с именем x, но мы используем функцию msgbox для x, которую мы столкнется с ошибкой нижнего индекса вне диапазона.

Ошибка VBA Subscript out of range возникает из-за того, что объект, к которому мы пытаемся получить доступ, не существует. Это тип ошибки в Кодирование VBAКодирование VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи.читать далее, и это «Ошибка времени выполнения 9». Важно понимать принципы написания эффективного кода, и еще более важно понимать ошибка вашего кода VBAОшибка вашего кода VBAОбработка ошибок VBA относится к устранению различных ошибок, возникающих при работе с VBA. читать далее для эффективной отладки кода.

Если ваша ошибка кодирования, и вы не знаете, что это за ошибка, когда вы ушли.

Врач не может дать лекарство своему пациенту, не зная, что это за болезнь. Конечно, и врачи, и пациенты знают, что есть болезнь (ошибка), но важнее понять болезнь (ошибку), чем давать от нее лекарство. Если вы можете прекрасно понять ошибку, то найти решение будет намного проще.

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

Нижний индекс VBA вне допустимого диапазона

Вы можете использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку на авторствоКак предоставить атрибуцию?Ссылка на статью должна быть гиперссылкой
Например:
Источник: Нижний индекс VBA вне допустимого диапазона (wallstreetmojo.com)

Что такое ошибка нижнего индекса вне диапазона в Excel VBA?

Например, если вы обращаетесь к листу, которого нет в рабочей тетради, то мы получаем Ошибка времени выполнения 9: «Нижний индекс вне диапазона».

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

Если вы нажмете кнопку «Конец», подпроцедура завершится, если вы нажмете «Отладка», вы перейдете к строке кода, где произошла ошибка, а справка приведет вас на страницу веб-сайта Microsoft.

Почему возникает ошибка Subscript Out of Range?

Как я сказал как врач важно найти покойника, прежде чем думать о лекарстве. Ошибка VBA Subscript out of range возникает, когда строка кода не читает введенный нами объект.

Например, посмотрите на изображение ниже. У меня есть три листа с именами Лист1, Лист2, Лист3.

Субскрипт VBA вне допустимого диапазона, пример 1

Теперь в коде я написал код для выбора листа «Продажи».

Код:

Sub Macro2()

   Sheets("Sales").Select

End Sub
Субскрипт VBA вне допустимого диапазона Пример 1-1

Если я запущу этот код с помощью клавиши F5 или вручную, я получу Ошибка времени выполнения 9: «Нижний индекс вне диапазона».

Субскрипт VBA вне допустимого диапазона Пример 1-2

Это потому, что я пытался получить доступ к объекту рабочего листа «Продажи», который не существует в рабочей книге. Это ошибка времени выполнения, поскольку эта ошибка возникла при выполнении кода.

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

Код:

Sub Macro1()

  Dim Wb As Workbook

  Set Wb = Workbooks("Salary Sheet.xlsx")

End Sub
Субскрипт VBA вне допустимого диапазона Пример 1-3

Приведенный выше код говорит, что переменная WB должна быть равна рабочей книге «Salary Sheet.xlsx». На данный момент эта книга не открывается на моем компьютере. Если я запущу этот код вручную или через клавишу F5, я получу Ошибка времени выполнения 9: «Нижний индекс вне диапазона».

Субскрипт VBA вне допустимого диапазона Пример 1-4

Это связано с книгой, о которой я говорю, которая либо не открыта, либо вообще не существует.

Ошибка индекса VBA в массивах

Когда вы объявляете массив как динамический массив и не используете слово DIM или РЕДИМ в VBAРЕДИМ В VBAОператор VBA Redim увеличивает или уменьшает объем памяти, доступный для переменной или массива. Если с этим оператором используется Preserve, создается новый массив другого размера; в противном случае изменяется размер массива текущей переменной.читать далее чтобы определить длину массива, мы обычно получаем ошибку VBA Subscript out of range. Например, посмотрите на приведенный ниже код.

Код:

Sub Macro3()

   Dim MyArray() As Long

   MyArray(1) = 25

End Sub
Субскрипт VBA вне допустимого диапазона, пример 2

В приведенном выше примере я объявил переменную как массив, но не назначил начальную и конечную точки; скорее, я сразу присвоил первому массиву значение 25.

Если я запущу этот код с помощью клавиши F5 или вручную, мы получим Ошибка времени выполнения 9: «Нижний индекс вне диапазона».

Пример диапазона 2-1

Чтобы решить эту проблему, мне нужно присвоить длину массива с помощью слова Redim.

Код:

Sub Macro3()

   Dim MyArray() As Long
   ReDim MyArray(1 To 5)

   MyArray(1) = 25

End Sub
Пример диапазона 2-2

Этот код не выдает никаких ошибок.

Как показать ошибки в конце кода VBA?

Если вы не хотите видеть ошибку, пока код запущен и работает, но вам нужен список ошибок в конце, вам нужно использовать обработчик ошибок «On Error Resume». Посмотрите на приведенный ниже код.

Код:

Sub Macro1()

Dim Wb As Workbook
On Error Resume Next
Set Wb = Workbooks("Salary Sheet.xlsx")

MsgBox Err.Description

End Sub
Вне диапазона Пример 3

Как мы видели, этот код выдает Ошибка времени выполнения 9: «Нижний индекс вне диапазона в экселе VBA. Но я должен использовать обработчик ошибок При ошибке продолжить дальше в VBAПри ошибке продолжить дальше в VBAОператор VBA On Error Resume — это аспект обработки ошибок, используемый для игнорирования строки кода, из-за которой возникла ошибка, и продолжения со следующей строки сразу после строки кода с ошибкой.читать далее во время выполнения кода. Никаких сообщений об ошибках мы не получим. Скорее в конце окна сообщения отображается описание ошибки, подобное этому.

Субскрипт вне допустимого диапазона Пример 3-1

Вы можете скачать шаблон подписки Excel VBA вне диапазона здесь: — Подстрочный индекс VBA вне шаблона диапазона

УЗНАТЬ БОЛЬШЕ >>

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *