Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
13 / 13 / 0
Регистрация: 24.10.2015
Сообщений: 279

Обход ошибки при срабатывании кода

10.02.2016, 21:33. Показов 1810. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем дня. Подскажите, люди добрые. Запускаю код, выскакивает ошибка, ошибка понятная и предсказуемая (согласен звучит глупо), но скажите, есть способ ее игнорирования, чтобы код не спотыкался об нее, а продолжал работать дальше.
Кстати файлик реальный, по нему работаем (вот добавил кнопки закрытия заказа и проверки и столкнулся с проблемой, раньше не сильно напрягало, просто End жали, да и делу край...) на мой взгляд довольно полезный (может коды не совсем элегантные..., но только учусь, правда, не все рук моих творение). Производственники, можете взять на вооружение.
Вложения
Тип файла: rar Планирование.rar (1.17 Мб, 9 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.02.2016, 21:33
Ответы с готовыми решениями:

с2079 и с2228 ошибки при компиляции ниже участок кода, с которым праблема и скрины ошибки
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ bool game = true; // КЛАССЫ class Me; class mob { public: void showHpMp()

Вылет при срабатывании деструктора
Собственно говоря вот: class MatrixGraph { int **arcs; int n; public: MatrixGraph(int vertexnumber) ...

Сброс МК при срабатывании реле.
Делал я одно устройство с несколькими релюшками. Так вот при срабатывании реле всегда неизбежно происходил сброс микроконтроллера. Так и...

10
13 / 13 / 0
Регистрация: 24.10.2015
Сообщений: 279
10.02.2016, 21:54  [ТС]
Кстати, если кто предложит по кодам более лаконичные решения, буду только рад и признателен
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
10.02.2016, 21:56
Используй конструкцию перед ожидаемой ошибкой:
Visual Basic
1
2
3
4
5
6
On error resume next
If err then
'ваш код обработки
err.clear
endif
On error goto 0
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
10.02.2016, 21:59
Проверяйте значение на число (isnumeric()), ну и не выбегайте за пределы массивов.
0
13 / 13 / 0
Регистрация: 24.10.2015
Сообщений: 279
10.02.2016, 22:55  [ТС]
Цитата Сообщение от toiai Посмотреть сообщение
Используй конструкцию перед ожидаемой ошибкой:
Visual BasicВыделить код

On error resume next
If err then
'ваш код обработки
err.clear
endif
On error goto 0
Проблему решило, но почему-то перестали вычитаться закрытые трудоемкости на втором листе. Так и должно быть?

Добавлено через 2 минуты
А еще, может кто глянет че-то не нравится как работает код "Проверка". Идея была в том, чтобы если перед закрытой операцией оказывается незакрытая, код ее бы закрывал.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
11.02.2016, 08:35
Исправила объявление ЗАКАЗ и вставила проверку на число
пометила места изменений пятью апострофами
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub Ocherednost()
    Const FirstRow& = 3
    Const FirstTrudOper& = 13
    Const NZakCol& = 1
    Const NIzdCol& = 2
    Const RoditelCol& = 3
    Const OchCol& = 4
    Dim h&, i&, j&, k&, N&, LastRow&, LastCol&
    Dim Zakaz As String        '''''
    Dim SborkaNIz%, SborkaRow&, TRow&
    Dim MaxTrud!, MaxTrudSborka!, Trud!, Usl As Boolean, OcheredOld%
    LastRow = Cells(Rows.Count, NZakCol).End(xlUp).Row
    LastCol = Cells(FirstRow - 1, Columns.Count).End(xlToLeft).Column
    Range(Cells(FirstRow, OchCol), Cells(LastRow, OchCol)).ClearContents
    A = Range(Cells(1, 1), Cells(LastRow, LastCol)).Value
    ReDim TrudSbor(LastRow), TrudDet(LastRow), Sbornaya(LastRow)
    For i = FirstRow To LastRow
        For j = FirstTrudOper To LastCol Step 3
        Debug.Print A(i, j)
        If IsNumeric(A(i, j)) Then           ''''''
            TrudDet(i) = TrudDet(i) + A(i, j)
        End If                               '''''''
        Next j
    Next i
    For ZStartRow = FirstRow To LastRow
    Debug.Print A(ZStartRow, NZakCol) & "===='''''"
        Zakaz = A(ZStartRow, NZakCol)
1
13 / 13 / 0
Регистрация: 24.10.2015
Сообщений: 279
11.02.2016, 17:58  [ТС]
Цитата Сообщение от shanemac51 Посмотреть сообщение
Исправила объявление ЗАКАЗ и вставила проверку на число
пометила места изменений пятью апострофами
Спасибо, а как на счет "Private Sub Proverka()", что-то никак не могу ничего вразумительного родить. Сам сделал так, чтобы предыдущая операция закрывалась (если она не закрыта), а так чтобы все предыдущие незакрытые закрылись никак не соображу. И еще, если возьметесь за проблему, после закрытия всех предыдущих операций нужно еще раз закрыть последнюю, т.к. если этого не сделать, то в столбце 10 будет искаженная информация.

Добавлено через 1 минуту
Цитата Сообщение от teplovdl Посмотреть сообщение
нужно еще раз закрыть последнюю,
последнюю имеется последнюю выполненную, а не самую последнюю в ряду.
0
13 / 13 / 0
Регистрация: 24.10.2015
Сообщений: 279
14.02.2016, 19:32  [ТС]
Уважаемый toiai, все-таки можно сделать так, чтобы код игнорировал только один шаг цикла, а дальше код чтобы работал как и раньше, как если бы вылезла ошибка, пользователь нажал end в окне сообщения об ошибке и запустил код заново. Честно скажу, что ту часть кода, в которой выпадает ошибка писал не сам, а толку до конца разобраться пока не хватает. Но скажу точно, что при вставке оператора для обхода ошибки некая часть кода перестала отрабатывать, что мягко говоря не желательно.
0
13 / 13 / 0
Регистрация: 24.10.2015
Сообщений: 279
15.02.2016, 21:27  [ТС]
Ребята, ну подскажите с обработчиком ошибок. С такой необходимостью столкнулся впервые (правда и опыта прямо скажем не много), но все-таки можно настроить его так, чтобы в цикле пропускались только шаги, содержащие ошибки, а остальные отрабатывали. Честно, думал, что логика именно такая, но как ставлю обработчик, цикл вообще перестаёт срабатывать. Я уж в инете вычитал, что можно Resume без Next употреблять, чтобы он с этой же строки начинал, но видимо такие же умники типа меня писали, вообщем ошибку выдаёт... Подскажите..., серьезно замучал вопрос, не в обиду будет студентам сказано, но это реальная задача для производства, а не вопрос из разряда "помогите двоишнику"
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
15.02.2016, 21:47
Visual Basic
1
2
3
4
Debug.Print A(i, j)
        If IsNumeric(A(i, j)) Then           ''''''
            TrudDet(i) = TrudDet(i) + A(i, j)
        End If
єтот кусок я преобразовала, чтобы он не давал ощибки
с остальными надо также разбираться --почему ошибка

слепое on error resume next --при ошибке перейти на следующую строку --задачи не решит
1
13 / 13 / 0
Регистрация: 24.10.2015
Сообщений: 279
15.02.2016, 22:30  [ТС]
Ошибку то понятно почему выдаёт: или трудоемкость на первом листе равна " " или на втором листе не встретилось название операции из первого листа. Можно конечно перебороть проблему путём проставления липовой трудоемкости в операциях, которые не учитываются при определении трудоемкости заказа ( например, транспортная или контрольная), но это постоянный геморрой плюс надо сделать так, чтобы эта липовая трудоемкость реально не учитывалась на
втором листе, например перед столбцов " заг" добавить столбцов восемь, куда бы скидывалась трудоемкость подобных операций и эти столбцы не учитывать при расчете суммы, а чтобы они не мешались попросту скрыть их.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2016, 22:30
Помогаю со студенческими работами здесь

Ошибки при конвертировании кода
Привет, уважаемые коллеги!! Написал программу на C++ , она работает, вот её код: class Complex{ private: double x, y; public: ...

Ошибки при компиляции кода
У меня дано задание "Записать программу, которая на ввод знака препинания выдает на экран дисплея его название. Например, на ввод точки...

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

Ошибка сегментации при срабатывании деструктора
Всем привет. Помогите, пожалуйста, разобраться с деструкторами. Суть проблемы заключается вот в чем: есть класс MyClass1 и AnotherClass,...

Загрузка приложения при срабатывании будильника
Здравствуйте. в приложении включается будильник и при его срабатывании выполняется метод из мейнактивити. если приложение закрыто, то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru