Как исправить ошибку «Нижний индекс вне диапазона» в Visual Basic для приложений?



Попробуйте наш инструмент устранения неполадок

Visual Basic для приложений (VBA) - это реализация языка программирования Visual Basic, разработанная Microsoft. VBA можно использовать для включения UDF, автоматизации задач и доступа к WinAPI через библиотеки DLL. Однако совсем недавно стало поступать много сообщений о том, что пользователи не могут выполнять определенные команды и « Индекс вне допустимого диапазона, ошибка 9 ”Всплывает при попытке сделать это.



Ошибка индекса вне допустимого диапазона



Что вызывает ошибку «Нижний индекс вне допустимого диапазона» в VBA?

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



  • Несуществующий элемент: В некоторых случаях возможно, что вы указали в команде несуществующий элемент. Возможно, что нижний индекс больше или меньше, чем диапазон возможных нижних индексов, или размеры, возможно, не были назначены массиву в этот момент в приложении.
  • Неопределенные элементы: Возможно, вы не указали количество элементов в своем коде. Важно, чтобы количество элементов в массиве определялось с помощью команд «Dim» или «ReDim».
  • Неверный член коллекции: В некоторых случаях пользователь мог ссылаться на несуществующий член коллекции. Если на член коллекции сделана неверная ссылка, может возникнуть эта ошибка.
  • Сокращенный сценарий: Возможно, вы использовали сокращенную форму подстрочного индекса и неявно указали недопустимый элемент. Важно использовать действительное имя ключа.

Теперь, когда у вас есть базовое представление о природе проблемы, мы перейдем к ее решениям. Обязательно реализуйте их в том порядке, в котором они представлены, чтобы избежать конфликтов.

Решение 1. Проверка массивов

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

Массив в VBA Excel



Решение 2. Указание количества элементов

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

Использование Dim и ReDim для указания количества элементов

Решение 3: изменение конструкции

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

Использование конструкции «Для каждого… Далее»

Решение 4.Проверка ключевого имени и индекса

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

Использование действительного ключевого имени

2 минуты на чтение