Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
20.10.2015, 12:47
|
|||
---|---|---|---|
Ошибка в Массиве код 9 |
|||
#18+
Всем добрый день. У меня в рабочем массиве, который я изначально написал для Функции, вдруг возникла ошибка, когда я этот же массив установил в кнопку, что бы взять из него данные. Теперь он пишет ошибку с кодом 9 - Subscript out of range. Хотя массив за недопустимый диапазон не выходит. Изначально массив ограничен 12 и счет ведется с 1 числа (Option Base 1). И за этот диапазон мы не выходим. Ошибка возникает сразу на 1 же числе. Я прикрепляю файл, где писал код. по возможности все лишнее я из него убрал. В файле нужно щелкнуть на ячейку "СВОДНАЯ" и запуститься UserForm, там нажать ОК и аля ошибка. Я программист любитель, по этому многих тонкостей программирования не знаю. По этому если сможете помочь и дать развернутый ответ, и предложить решение, буду безмерно благодарен. ошибка возникает вот в этом кусочке кода: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 12:57
|
|||
---|---|---|---|
Ошибка в Массиве код 9 |
|||
#18+
lopuxiприкрепляю файл, где писал код. по возможности все лишнее я из него убрал. А теперь приложи к этому пошаговую инструкцию, что с этим файлом делать, чтобы добраться до описываемой ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 13:00
|
|||
---|---|---|---|
Ошибка в Массиве код 9 |
|||
#18+
PS. Простой щелчок по указанной ячейке ни к чему не приводит, двойной клик приводит к ошибке компиляции проекта формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 13:04
|
|||
---|---|---|---|
|
|||
Ошибка в Массиве код 9 |
|||
#18+
Akina, ты невнимателен, она есть lopuxi, там интересный прикол. С самим массивом iNumMontArr все в порядке, но в качестве содержимого элемента массива лежит объект "ошибка" ))). Когда ты пытаешься извлечь эту ошибку из массива, она и случается. Почему это стало возможно: 1) ты используешь массив Variant (а что мешает использовать массив правильного типа? и вообще там с объявлениями переменных та еще свистопляска. переменные типа Variant нужны очень редко, всегда объявляй тот тип, который тебе реально нужен. 2) ты используешь On Error Resume Next - где-то ошибка вместо того, чтобы возникнуть и указать тебе на ошибку в твоей программе - положилась в массив глубже копать не стал. приведи типы в порядок и убери лишние On Error ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 13:08
|
|||
---|---|---|---|
|
|||
Ошибка в Массиве код 9 |
|||
#18+
Вообще, как будто программу писали два разных человека: правильное объявление переменных Код: vbnet 1.
неправильное объявление переменных Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 13:11
|
|||
---|---|---|---|
Ошибка в Массиве код 9 |
|||
#18+
Shocker.Proты невнимателен, она есть Я понимаю, что обычно краткость - сестра таланта, но в данном случае она - сирота. Ибо приведённая инструкция приводит к тому, что я указал. По причине наличия в референсах библиотеки, не входящей в стандартную поставку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 13:12
|
|||
---|---|---|---|
Ошибка в Массиве код 9 |
|||
#18+
"Microsoft office web components 11.0" у меня нет(пришлось убрать MISSINF в References), поэтому как только дохожу до нужной строки Excel падает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 13:28
|
|||
---|---|---|---|
Ошибка в Массиве код 9 |
|||
#18+
Shocker.Pro, Спасибо. Да, с объявлением переменных я действительно не утруждаю себя... часто использую Variant так как он принимает любой тип. Но это видимо прокатывает только в простых задачах. Попробую привести все переменные к нужному типу сейчас. И посмотрю почему вообще ошибка в массив попадает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 13:49
|
|||
---|---|---|---|
|
|||
Ошибка в Массиве код 9 |
|||
#18+
lopuxiя действительно не утруждаю себяскупой платит дважды ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 14:00
|
|||
---|---|---|---|
Ошибка в Массиве код 9 |
|||
#18+
Shocker.Pro, On Error нету в коде. Это может быть связано с наличием нулевого значения в массиве, при использовании Option Base 1 ? У меня сейчас цикл заполняющий массив проходит с условием при исполнении которого массив записывает число от 1 до 12, в зависимости когда условие сработало. А когда условие не сработало, то в массив попадает 0. Это может приводить к подобной ошибке? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 14:40
|
|||
---|---|---|---|
Ошибка в Массиве код 9 |
|||
#18+
Cint(0) привести к ошибке не может. А Cint(variable(0)) при option base 1 и не-объявлении нулевой нижней границе явно - обязательно приведёт. Кстати, Subscript out of range может возникать не только при обращении к элементу массива за пределами его границ. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 14:48
|
|||
---|---|---|---|
|
|||
Ошибка в Массиве код 9 |
|||
#18+
lopuxiУ меня сейчас цикл заполняющий массив проходит с условием при исполнении которого массив записывает число от 1 до 12, в зависимости когда условие сработало. А когда условие не сработало, то в массив попадает 0. Это может приводить к подобной ошибке?Блин, типизируй ВСЕ переменные, ошибка сразу переместится в другое место и будет яснее. Заодно не понадобятся всякие CInt-ы ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 14:52
|
|||
---|---|---|---|
|
|||
Ошибка в Массиве код 9 |
|||
#18+
Кстати, нашел проблему Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 14:54
|
|||
---|---|---|---|
|
|||
Ошибка в Массиве код 9 |
|||
#18+
Shocker.ProКстати, нашел проблему Код: vbnet 1.
ты сказал, что убрал все лишнее. Надо было РЕАЛЬНО убрать все лишнее тогда бы сам нашел ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2015, 15:43
|
|||
---|---|---|---|
|
|||
Ошибка в Массиве код 9 |
|||
#18+
Так, по ходу дела... твой способ фильтрации ввода цифр в текстовые поля не защищает от вставки туда букв из буфера обмена. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.10.2015, 16:06
|
|||
---|---|---|---|
Ошибка в Массиве код 9 |
|||
#18+
Shocker.Pro, Да, я кстати так и нашел ее) Вся беда была в закрытии формы...)) Сейчас я уже все доделал, все работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.10.2015, 16:22
|
|||
---|---|---|---|
Ошибка в Массиве код 9 |
|||
#18+
Shocker.Pro, да, действительно.. буквы вставить из буфера обмена в поля можно... А есть способ, запретить использовать буфер обмена, то бишь вставить что-то в поле. Или может чистить буфе обмена, при запуске формы? Спасибо, за помощь и нахождение ошибок! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&mobile=1&tid=2155752]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 441ms |
0 / 0 |