|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
19.09.2013, 05:39 | #1 |
Форумчанин
Регистрация: 19.09.2013
Сообщений: 597
|
Вылет программы при использовании макроса
Доброго времени суток!
Столкнулся с интересной вещью, для упрощения своей жизни решил активно использовать макросы во всеми нами любимым Excel.Все было написано и работало, и работает. вот только падает оно не в самый подходящий момент. А падает так,что потом пытается вернуть все восстановлением, что вобщем то бесполезно... Дебагером поймать ошибку не могу, потому что она вылетает спонтанно( может за 1ую минуту использования,а может и через 10) при одной и той же интенсивности работы с книгой. Итак, где что. На 1ом листе происходит ввод информации, кнопка "пересчет очереди" используется для того-чтобы с верхней части таблицы(A1:J96) по номеру маршрута собирать очередь на разгрузку(J98:J144). На 2ом листе формируется таблица(на основе первого), используются связи между листами(ПК->Спец.Вставка->Связи). 3ий лист, тут самым индусским способом формируется очередь для первого листа и используется функция СцепитьЕсли(гдет нашел). И потом все эта "красивая штука возвращается на 1ый лист в виде текста,а не формул. Теперь по макросам. 4ый модуль- кнопачка на 1ом листе(видимо в ней собака и зарыта). Вот вобщем то и все... Хелп Ми >__<
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!! |
19.09.2013, 08:02 | #2 |
Форумчанин
Регистрация: 19.09.2013
Сообщений: 597
|
Код индусский, так что не ругайте. С VBA знаком всего неделю =)
Напишу на всякий случай что я хотел получить. Укрупненный алгоритм: -Лист1.Ввод данных(A1:J96) -Лист1.Создание очереди(J98:J144) на основе ввода(A1:J96) !!!по кнопке!!! -Лист2.Формирование нужной таблицы на основе Лист1.A1:J96
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!! Последний раз редактировалось SaLoKiN; 19.09.2013 в 08:03. Причина: мисклик |
19.09.2013, 08:20 | #3 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 208
|
Вроде из программы не кикает. В отладчик направляет - это да.
|
19.09.2013, 08:40 | #4 |
Форумчанин
Регистрация: 19.09.2013
Сообщений: 597
|
он не сразу кикает, книга может просто быть открытой и упасть(при условии что считал уже чегонибудь). а де в отладчик кидает?
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!! Последний раз редактировалось SaLoKiN; 19.09.2013 в 09:31. |
19.09.2013, 11:39 | #5 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 208
|
Куча сортировок, я нихт понимать. Скайп под ником, думаю будет быстрее, чем раз в день сообщение на форуме писать.
|
20.09.2013, 05:13 | #6 |
Форумчанин
Регистрация: 19.09.2013
Сообщений: 597
|
Блин, со скайпом лажа. На работе нет,а дома есть чем заняться и без этого =) Мож ацка е? или еще какая штука?
Ну или по сортировкам. Лист l5 не нужно смотреть, я его переписал уже. он теперь не на ссылках, а на массивах в памяти и все красиво считается(скилл качнул). Может сейчас еще перепишу и ту хрень. Вот ток вопросец сразу, строковая переменная может принимать набор числовых значений? т.е. есть массив А(5,i) и строка S. которая в цикле будет получать 5 элементов i-ой строки(склеивать).
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!! |
20.09.2013, 06:55 | #7 |
Форумчанин
Регистрация: 19.09.2013
Сообщений: 597
|
Переписал расчеты для второго листа, убрал всякий хлам из модулей.
Модуль 7 теперь отвечает за расчеты на листе "для l5". Нужна помощь... тут Код:
Код:
Код:
Пока решаю эту проблему скрывая пустые строки, но в конечном итоге работать с этим буду не я, поэтому нид хелп) З.Ы. Погоняйте книгу плиз, нужно понять от чего она ложится
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!! |
24.09.2013, 09:28 | #8 |
Форумчанин
Регистрация: 19.09.2013
Сообщений: 597
|
Товарищи! Ну почему может вылетать ексель? Я не могу найти причину,самостоятельно! сейчас нормально работал, стал закрывать-приложение рухнуло и не смогло нормально восстановиться =(
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!! |
24.09.2013, 10:42 | #9 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Создали один массив, второй...
Зачем затем снова лезете на лист за данными, если эти данные есть в массиве (в 'подгрузили условия)? И вот как-то непонятно - работаете With Sheets("НТК 1 "), а сортируете затем зачем-то Worksheets("для l5").sort. Причём Key:=Range("A3:A41") - т.е. этот key берётся с активного в этот момент листа.Думаю проблема тут - но сам код проверить в работе не могу, у меня 2003 Эксель. Но такое использование не правильное - или указываете лист, или сперва активируете тот лист (лучше указать). Но зачем вообще тут сейчас эта сортировка? А вообще чувствую что с помощью словаря код можно сильно упростить/ускорить - но задачу по коду не понял (да и не старался, раз сразу не понял ) P.S. Интересный файл - первый раз вижу, что перемотка листа, если тянуть за правый скроллбар, на середине зависает
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 24.09.2013 в 10:54. |
24.09.2013, 13:25 | #10 | |
Форумчанин
Регистрация: 19.09.2013
Сообщений: 597
|
Итак по порядку:
1. диапазон который в 'подгрузили условия, в массив не грузится. 2. Сортирую я для того,чтобы потом мне это дело в нужном виде представить в другой книге. Key:=Range("A3:A41") вроде привязан к нужному листу Код:
3. Общая суть для "Sub RunMe()" такова. Формируется лист НТК1 ручками. я чтобы не удалять кучу ненужной "каки", с помощью кода собираю те данные которые мне нужны для дальнейшего использования. Сортировка в конце чисто для нужного представления( в идеале нужна сортировка массива в памяти и выдавать уже на лист готовую таблицу, но эт не критично). "Подгружаю значения" лишь для того, чтобы добрать необходимые данные. Т.к. 3ий создавать думаю не стоит. Цитата:
P.S. и как показывает практика падает он вовсе не из-за RunMe(), а из-за "Пересчета очереди"( как бы даже не СцепитьЕсли виновата, которую нашел гдет на просторах любимого рунета). P.S.S Спасибо за подсказку про словарь,поковыряю
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!! |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Qt] Вылет при изменении параметров QTableWidgetItem | WarAngel-alk | Qt и кроссплатформенное программирование С/С++ | 4 | 31.01.2013 17:58 |
вылет программы при выводе простого числа (cout) | Ciberal | Общие вопросы C/C++ | 7 | 27.09.2011 01:51 |
Вылет программы после завершение | kloffelin | Общие вопросы C/C++ | 3 | 17.04.2010 20:18 |
Ошибка при использовании copyfile | The Best | Общие вопросы Delphi | 20 | 22.07.2009 13:26 |
Проблемка при использовании регрессии | 500_pinguins | Microsoft Office Excel | 0 | 16.06.2009 08:17 |