Виправлення помилки підписки поза діапазоном у Visual Basic для додатків (VBA)



Оновлений травень 2024: Припиніть отримувати повідомлення про помилки та сповільніть роботу системи за допомогою нашого інструмента оптимізації. Отримайте зараз на посилання
  1. Завантажити та встановити інструмент для ремонту тут.
  2. Нехай сканує ваш комп’ютер.
  3. Тоді інструмент буде ремонт комп'ютера.

Помилка VBA-індексу поза діапазоном виникає, оскільки об’єкт, до якого ми хочемо отримати доступ, не існує. Це тип помилок у кодуванні VBA та “Помилка часу виконання 9”. Важливо розуміти концепції для написання ефективного коду, а ще важливіше розуміти помилку коду VBA для ефективної налагодження коду.

Якщо ви та ваша помилка кодування не знаєте, що це за помилка, коли ви відсутні.

Лікар не може давати ліки своєму пацієнту, не знаючи захворювання. Поки лікар і пацієнтка знають, що є захворювання (помилка), важливо розуміти хворобу (помилку) як надання їй ліків. Якщо ви повністю розумієте помилку, знайти рішення набагато простіше.

Іншою причиною може бути те, що у вас немає стандартного принтера на комп’ютері. Існує кілька рішень для вирішення цього питання Проблема під час виконання 9, тому спробуйте їх у правильному порядку.

Додавання принтера за замовчуванням

  1. Підключіть принтер до комп'ютера, підключіть шнур живлення та увімкніть його.
  2. Перейдіть до «Пуск»> «Панель управління»> «Принтери та факсимільні апарати».
  3. Клацніть на «Додати принтер» та дотримуйтесь інструкцій на екрані, щоб додати принтер за замовчуванням.

Перевірте масиви

Можливо, ви встановили неправильне значення для елемента масиву. Тому рекомендується повторно перевірити значення, визначене для елемента масиву, і переконатися, що воно правильне. Також обов’язково перевірте декларацію таблиці та перевірте верхню та нижню межі. Якщо таблиці були змінені, обов'язково використовуйте функції LBound та UBound, щоб умовити доступ. Перевірте написання назви змінної, якщо індекс є змінною.

Визначте кількість елементів

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

Як уникнути помилки “Помилка помилки поза межами діапазону” у VBA

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



Оновлення за травень 2024 року:

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

скачати



Використовуйте інтегрований лише один раз і лише в самих зовнішніх макросах (підсплавах) і фіксуйте при запуску макросу, наприклад

встановити wkb = ActiveWorkbook
встановити 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 (вираз). Активацію можна просто видалити, а не замінити wkb. Активуйте взагалі.

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



Порада експерта: Цей інструмент відновлення сканує репозиторії та замінює пошкоджені чи відсутні файли, якщо жоден із цих методів не спрацював. Він добре працює в більшості випадків, коли проблема пов’язана з пошкодженням системи. Цей інструмент також оптимізує вашу систему для максимальної продуктивності. Його можна завантажити за Натиснувши тут