Runtime error 9 excel как исправить
В этой статье представлена ошибка с номером Ошибка 9, известная как Индекс вне диапазона, описанная как Доступ к элементам массивов и членам коллекций можно получить только в пределах их определенных диапазонов.
Информация об ошибке
Имя ошибки: Индекс вне диапазона
Номер ошибки: Ошибка 9
Описание: Доступ к элементам массивов и членам коллекций можно получить только в пределах их определенных диапазонов.
Программное обеспечение: Windows
Разработчик: Microsoft
Этот инструмент исправления может устранить такие распространенные компьютерные ошибки, как BSODs, зависание системы и сбои. Он может заменить отсутствующие файлы операционной системы и библиотеки DLL, удалить вредоносное ПО и устранить вызванные им повреждения, а также оптимизировать ваш компьютер для максимальной производительности.
О программе Runtime Ошибка 9
Время выполнения Ошибка 9 происходит, когда Windows дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.
Определения (Бета)
Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!
- Массивы . Массив - это упорядоченная структура данных, состоящая из набора значений элементов или переменных, каждый из которых идентифицируется одним одномерным массивом, вектором или несколькими индексами.
- Коллекции - API коллекций предоставляют разработчикам набор классов и интерфейсов, которые упрощают работу с коллекциями объектов.
- Определено . Определение - это недвусмысленное определение значения слова или фразы
- Элементы - Сущности, которые являются отдельными членами более крупного набора, списка, группы . Диапазон - диапазон - это диапазон значений между его нижней и верхней границей.
- Нижний индекс - нижний индекс - это число, цифра, символ, или индикатор, который меньше обычной строки типа и установлен немного ниже базовой линии.
- Элементы - в метаданных термин элемент данных представляет собой атомарную единицу данных, которая имеет точное значение или точная семантика.
Симптомы Ошибка 9 - Индекс вне диапазона
Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.
(Только для примера)
Причины Индекс вне диапазона - Ошибка 9
При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.
Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.
Методы исправления
Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.
Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.
«Excel Error 9» также считается ошибкой во время выполнения (ошибкой). Программисты работают через различные уровни отладки, пытаясь убедиться, что Microsoft Excel как можно ближе к безошибочным. К сожалению, многие ошибки могут быть пропущены, что приводит к проблемам, таким как те, с ошибкой 9.
Что вызывает ошибку 9 во время выполнения?
У вас будет сбой во время выполнения Microsoft Excel, если вы столкнетесь с «Excel Error 9» во время выполнения. Следующие три наиболее значимые причины ошибок выполнения ошибки 9 включают в себя:
Ошибка 9 Crash - Номер ошибки вызовет блокировка системы компьютера, препятствуя использованию программы. Это происходит много, когда продукт (Microsoft Excel) или компьютер не может обрабатывать уникальные входные данные.
Утечка памяти «Excel Error 9» - этот тип утечки памяти приводит к тому, что Microsoft Excel продолжает использовать растущие объемы памяти, снижая общую производительность системы. Возможные причины включают сбой Microsoft Corporation для девыделения памяти в программе или когда плохой код выполняет «бесконечный цикл».
Ошибка 9 Logic Error - Логическая ошибка вызывает неправильный вывод, даже если пользователь дал действительные входные данные. Это происходит, когда исходный код Microsoft Corporation вызывает уязвимость при обработке информации.
Ошибки Excel Error 9
Общие проблемы Excel Error 9, возникающие с Microsoft Excel:
- "Ошибка приложения Excel Error 9."
- «Недопустимая программа Win32: Excel Error 9»
- "Возникла ошибка в приложении Excel Error 9. Приложение будет закрыто. Приносим извинения за неудобства."
- «К сожалению, мы не можем найти Excel Error 9. «
- "Отсутствует файл Excel Error 9."
- "Ошибка запуска программы: Excel Error 9."
- "Файл Excel Error 9 не запущен."
- «Ошибка Excel Error 9. «
- «Ошибка в пути к программному обеспечению: Excel Error 9. «
Обычно ошибки Excel Error 9 с Microsoft Excel возникают во время запуска или завершения работы, в то время как программы, связанные с Excel Error 9, выполняются, или редко во время последовательности обновления ОС. При появлении ошибки Excel Error 9 запишите вхождения для устранения неполадок Microsoft Excel и чтобы HelpMicrosoft Corporation найти причину.
Истоки проблем Excel Error 9
Эти проблемы Excel Error 9 создаются отсутствующими или поврежденными файлами Excel Error 9, недопустимыми записями реестра Microsoft Excel или вредоносным программным обеспечением.
Как правило, практикующие ПК и сотрудники службы поддержки знают «Subscript out of range» как форму «ошибки во время выполнения». Когда дело доходит до программного обеспечения, как Windows Operating System, инженеры могут использовать различные инструменты, чтобы попытаться сорвать эти ошибки как можно скорее. Ошибки, такие как ошибка 9, иногда удаляются из отчетов, оставляя проблему остается нерешенной в программном обеспечении.
Почему возникает ошибка времени выполнения 9?
В большинстве случаев вы увидите «Subscript out of range» во время загрузки Windows Operating System. Вот три наиболее распространенные причины, по которым происходят ошибки во время выполнения ошибки 9:
Ошибка 9 Crash - Ошибка 9 может привести к полному замораживанию программы, что не позволяет вам что-либо делать. Если данный ввод недействителен или не соответствует ожидаемому формату, Windows Operating System (или OS) завершается неудачей.
Утечка памяти «Subscript out of range» - если есть утечка памяти в Windows Operating System, это может привести к тому, что ОС будет выглядеть вялой. Есть некоторые потенциальные проблемы, которые могут быть причиной получения проблем во время выполнения, с неправильным кодированием, приводящим к бесконечным циклам.
Ошибка 9 Logic Error - логическая ошибка возникает, когда компьютер производит неправильный вывод, даже если вход правильный. Это видно, когда исходный код Microsoft Corporation включает дефект в анализе входных данных.
Subscript out of range проблемы часто являются результатом отсутствия, удаления или случайного перемещения файла из исходного места установки Windows Operating System. В большинстве случаев скачивание и замена файла Microsoft Corporation позволяет решить проблему. Мы также рекомендуем выполнить сканирование реестра, чтобы очистить все недействительные ссылки на Subscript out of range, которые могут являться причиной ошибки.
Обнаруженные проблемы Subscript out of range с Windows Operating System включают:
- «Ошибка программы Subscript out of range. «
- «Ошибка программного обеспечения Win32: Subscript out of range»
- «Subscript out of range столкнулся с проблемой и закроется. «
- «Subscript out of range не может быть найден. «
- «Subscript out of range не может быть найден. «
- «Проблема при запуске приложения: Subscript out of range. «
- "Файл Subscript out of range не запущен."
- "Отказ Subscript out of range."
- "Неверный путь к приложению: Subscript out of range."
Причины ошибок в файле Subscript out of range
Проблемы Subscript out of range могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с Subscript out of range, или к вирусам / вредоносному ПО.
Более конкретно, данные ошибки Subscript out of range могут быть вызваны следующими причинами:
Subscript Out of Range Error (Run Time: Error 9) occurs when you refer to an object or try to use a variable in a code that doesn’t exist in the code, in that case, VBA will show this error. As every code that you write is unique, so the cause of the error would be.
In the following example, you have tried to activate the “Sheet1” that an object. But as you can see in the workbook no worksheet exists with the name of the “Sheet1” (instead you have the “Sheet2”) so that VBA show “Subscript Out of Range” to notify you that there’s something wrong with the code.
Subscript Out of Range
There could be one more situation when you have to face this error “Subscript Out of Range Error” when you are trying to declare a dynamic array but forget to use the DIM and ReDim statement to redefine the length of the array.
Now in the above code, you have an array with the name of “myArray” and to make it dynamic we have initially left the array length blank. But before you add an item to you need to redefine the array length using the ReDim statement.
And that’s the mistake we have made in the above code and VBA has returned the “Script Out of Range” error.
How Do I Fix Subscript Out of Range in Excel?
The best way to deal with this Subscript Out of Range is to write effective codes and make sure to debug the code that you have written (Step by Step).
When you run a code step by step it is easy for you to know on which line of that code you have an error as VBA will show you the error message for Error 9 and highlight that line with yellow color.
The other thing that you can do is to use an “Error Handler” to jump to a specific line of error when it happens.
In the following code, we have written a line to activate the sheet but before that, we have used the goto statement to move to the error handler. In the error handler, you have a message box that shows you a message with the Err. Description that an error has occurred.
So basically I probably have a lame question. I've used VBA for about two hours now and I'm just trying to make a macro that would would create a new speadsheet and copy data from existing one.
I've dealt with compilation errors there were, but now when I try to compile the project I get a "Run-time Error 9: Subscript out of range". In the code below the error comes up in the line where Name variable gets assigned its value.
I've had a look at other threads with the same issue but with my limited knowledge of VBA I couldn't figure out what is wrong or whether this code would work at all. Any help will be greatly appreciated! Thanks everyone!
Error 9 comes in this line Name = Workbooks(DataBook).Sheets(DataSheet).Range("A2").Text
UPDATE
I've figured out why I was having this error - I was referring to a workbook and worksheet with String type of variable, so I've changed the erroring line the following way:
No I don't get Error 9 but I'm getting Error 13: Type mismatch if the following line:
Any clues on what is wrong here? Thanks again!
3 Answers 3
NewBook is alreayd a workbook object so the correct way to do this assignment is like Set NewSheet = NewBook.Sheets("Sheet1")
The construct Workbooks(_something_) takes a string argument, as the name of a workbook. What you're passing instead of a string is a workbook object, which will raise an error since it is not the expected data type.
For grins, you could do:
But that is obviously redundant, and kind of defeats the purpose of using object variables in your code.
NOTE Name is also a semi-reserved word, since it's a type of object in Excel. While this may not raise any errors for you, it might be confusing, and personally I try to avoid using variable names that are identical to, or very similar to objects.
Thanks for advice! I've already changed the code quite a bit and now the same statement looks like this: 'Set wsNewSheet = Workbooks("F:\VBA_scripts\" & Pts & ".csv").Sheets("" & Pts & "")'. I've checked Pts variable and it return correct value. Now when I run it I get Error 9: Subscript out of range again. Same with the next statement: 'Set wsO_Sheet = Workbooks("" & OldBookName & "").Sheets("" & OldSheetName & "")' . All variables are string type and have correct values but it's not working. What am I doing wrong here?
Without testing it I think the problem may be that you're doubled the quotes, try .sheets(pts) because of pts is a string already I can't think of why you'd need to enclose it in quotes let alone doublequotes. Again you are likely referring to a sheet that doesn't exist -- even if your variable is correct -- because you are not properly using the objects/assignments.
In response to the comment that you put under David's answer.
is potentially dangerous when combined with this:
Reason? Think about it for a sec. It should work fine IF the workbook that the code is embedded in is ALSO the current workbook. However if any OTHER workbook is active at the time that the code is executed then the variable DataSheet will pick up the name of a sheet in THAT workbook, not one in the "ThisWorkbook" object. Consequently you could be asking VBA to find a sheet name that certainly does exist in the ACTIVE workbook at the time, but may not exist in "ThisWorkbook"; that is, the workbook that the code is running from.
That will in turn give you a subscript out of range error or, to put it another way, "you're looking for a sheet in that does not exist in this workbook". (And again I emphasise, "ThisWorkbook" is the book that the code runs from, NOT (necessarily) the active workbook at the time.)
Either change the DataBook reference to the Active workbook, or activate ThisWorkbook (depending on what your intention is) to make sure that the sheet is in the same workbook that you're referring to.
Читайте также: