Исправить ошибку выхода за пределы диапазона в Visual Basic для приложений (VBA)



Обновлено 2024 апреля: перестаньте получать сообщения об ошибках и замедлите работу вашей системы с помощью нашего инструмента оптимизации. Получить сейчас в эту ссылку
  1. Скачайте и установите инструмент для ремонта здесь.
  2. Пусть он просканирует ваш компьютер.
  3. Затем инструмент почини свой компьютер.

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

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

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

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

Добавление принтера по умолчанию

  1. Подключите принтер к компьютеру, подключите шнур питания и включите его.
  2. Перейдите в «Пуск»> «Панель управления»> «Принтеры и факсы».
  3. Щелкните «Добавить принтер» и следуйте инструкциям на экране, чтобы добавить принтер по умолчанию.

Проверьте массивы

Возможно, вы установили неверное значение для элемента массива. Поэтому рекомендуется перепроверить значение, которое вы определили для элемента массива, и убедиться, что оно правильное. Также обязательно проверьте декларацию таблицы и проверьте верхний и нижний пределы. Если размер таблиц был изменен, обязательно используйте функции LBound и UBound для условий доступа. Проверьте правильность имени переменной, если индекс является переменной.

Определить количество элементов

В некоторых случаях вы, возможно, не определили количество элементов в вашем коде, которые будут вызывать ошибку. Рекомендуется указывать количество элементов в таблице с помощью функций Dim или ReDim.

Как избежать ошибки «Индекс ошибки вне допустимого диапазона» в VBA

Избегайте использования функций, интегрированных в Excel: ActiveWorkbook, ActiveSheet и Selection: введите возвращаемые значения и предпочитайте квалифицированные выражения.



Обновление за апрель 2024 года:

Теперь вы можете предотвратить проблемы с ПК с помощью этого инструмента, например, защитить вас от потери файлов и вредоносных программ. Кроме того, это отличный способ оптимизировать ваш компьютер для достижения максимальной производительности. Программа с легкостью исправляет типичные ошибки, которые могут возникнуть в системах Windows - нет необходимости часами искать и устранять неполадки, если у вас под рукой есть идеальное решение:

  • Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista - Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.

скачать



Используйте интегрированные только один раз и только в большинстве внешних макросов (подпрограмм) и захватывайте при запуске макроса, например

set wkb = ActiveWorkbook
set wks = ActiveSheet
Набор соли = выбор
Во время и в макросах эти интегрированные имена не являются надежными, но возвращаемые значения записываются, например,

Установите wkb = Workbooks.add 'вместо Workbooks.add без ввода возвращаемого значения.
wkb.Activate 'вместо Activeworkbook.Activate
Также попробуйте использовать квалифицированные выражения, например

wkb.Sheets («Sheet3»). name = «foo» 'вместо Sheets («Sheet3»). name = «foo».
or

Установите newWks = wkb.Sheets.Add.
newWks.name = «bar» 'вместо ActiveSheet.name = «bar».
Используйте квалифицированные выражения, например

newWks.name = «bar» 'вместо «xyz.Select», за которым следует Selection.name = «bar».
Эти методы обычно работают лучше, дают менее запутанные результаты, более устойчивы к рефакторингу (например, перемещают строки кода внутри и между методами) и работают лучше во всех версиях Excel. Например, выбор изменяется по-разному от одной версии Excel к другой во время выполнения макроса.

Также обратите внимание, что вы, вероятно, обнаружите, что использование более квалифицированных выражений не требует активации почти такого же количества функций. (Это может означать, что экран меньше мигает для пользователя.) Таким образом, вся строка Windows (выражение). Activate может быть просто удален, а не заменен wkb. Активировать на всех.

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/subscript-out-of-range-error-9



Совет эксперта: Этот инструмент восстановления сканирует репозитории и заменяет поврежденные или отсутствующие файлы, если ни один из этих методов не сработал. Это хорошо работает в большинстве случаев, когда проблема связана с повреждением системы. Этот инструмент также оптимизирует вашу систему, чтобы максимизировать производительность. Его можно скачать по Щелчок Здесь