Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Параллельный запуск двух VBA формул без зависания - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Параллельный запуск двух VBA формул без зависания
SPIRIT84 Дата: Среда, 16.02.2022, 21:12 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Добрый вечер всем. Суть вопроса такова: почему эксель виснет при запуске одновременно двух VBA формул?
Есть автоматизированная табличка по ведению договора.
Во вкладке "Исполнение" производится формирование, подсчет и контроль нужных условий договора, в частности в столбце I (тайминг доставки) по формуле формируется нужная дата с временем доставки заявки исполнителю относительно даты и времени ее подачи в столбце F, в столбец J в ручную вводится фактическое время утверждения заявки исполнителем. А в столбце О считается просрочка этого утверждения, если время между столбцами I и J превысит хотя бы на 1 мин 24 часовой порог. Так вот при открытии файла при нажатии на уведомлении "включить содержимое", файл виснет со статусом в нижнем правом углу: вычисление (потоков 12) 0%, и это при условии наличия в столбцах двух пользовательских формул Timing и lost_utv. Но стоит стереть из столбца О все формулы из ячеек с 2 по 401 зависание пропадает. Есть один интересный факт - дома офис 2019, на работе офис 2013 и файл вылетает. А у другого человека на работе офис 2010 и дома тоже 2010 и у него файл нормально открывается с двумя формулами. Может дело все в том что столбец О не успевает просчитаться потому что в столбце I идет долго просчет?

Файл не прикладывается, т.к. весит 1,7 м. А урезать не хочу, что б была вся картина, потому что может оказаться что проблема не только в одной вкладке. Залил на диск
https://drive.google.com/file....sharing
 
Ответить
СообщениеДобрый вечер всем. Суть вопроса такова: почему эксель виснет при запуске одновременно двух VBA формул?
Есть автоматизированная табличка по ведению договора.
Во вкладке "Исполнение" производится формирование, подсчет и контроль нужных условий договора, в частности в столбце I (тайминг доставки) по формуле формируется нужная дата с временем доставки заявки исполнителю относительно даты и времени ее подачи в столбце F, в столбец J в ручную вводится фактическое время утверждения заявки исполнителем. А в столбце О считается просрочка этого утверждения, если время между столбцами I и J превысит хотя бы на 1 мин 24 часовой порог. Так вот при открытии файла при нажатии на уведомлении "включить содержимое", файл виснет со статусом в нижнем правом углу: вычисление (потоков 12) 0%, и это при условии наличия в столбцах двух пользовательских формул Timing и lost_utv. Но стоит стереть из столбца О все формулы из ячеек с 2 по 401 зависание пропадает. Есть один интересный факт - дома офис 2019, на работе офис 2013 и файл вылетает. А у другого человека на работе офис 2010 и дома тоже 2010 и у него файл нормально открывается с двумя формулами. Может дело все в том что столбец О не успевает просчитаться потому что в столбце I идет долго просчет?

Файл не прикладывается, т.к. весит 1,7 м. А урезать не хочу, что б была вся картина, потому что может оказаться что проблема не только в одной вкладке. Залил на диск
https://drive.google.com/file....sharing

Автор - SPIRIT84
Дата добавления - 16.02.2022 в 21:12
doober Дата: Среда, 16.02.2022, 23:46 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 970
Репутация: 332 ±
Замечаний: 0% ±

Excel 2010
что в столбце I идет долго просчет?

Нет, столбец L тормозит.[vba]
Код
K2=ЕСЛИ(ЕПУСТО(J2);"";Timing(J2))
G2=ЕСЛИ(ЕПУСТО(журнал_заявок!K2);" ";журнал_заявок!K2)
L2=ЕСЛИ(G2="день";ЕСЛИОШИБКА(РАБДЕНЬ(K2;4;Календарь!$C$2:$C$119) +ВРЕМЯ(17;0;);" ");ЕСЛИОШИБКА(РАБДЕНЬ(K2;4;Календарь!$C$2:$C$119) +ВРЕМЯ(4;0;);" "))
[/vba]А теперь прикиньте, сколько раз дергается не совсем оптимизированная UDF




Сообщение отредактировал doober - Среда, 16.02.2022, 23:48
 
Ответить
Сообщение
что в столбце I идет долго просчет?

Нет, столбец L тормозит.[vba]
Код
K2=ЕСЛИ(ЕПУСТО(J2);"";Timing(J2))
G2=ЕСЛИ(ЕПУСТО(журнал_заявок!K2);" ";журнал_заявок!K2)
L2=ЕСЛИ(G2="день";ЕСЛИОШИБКА(РАБДЕНЬ(K2;4;Календарь!$C$2:$C$119) +ВРЕМЯ(17;0;);" ");ЕСЛИОШИБКА(РАБДЕНЬ(K2;4;Календарь!$C$2:$C$119) +ВРЕМЯ(4;0;);" "))
[/vba]А теперь прикиньте, сколько раз дергается не совсем оптимизированная UDF

Автор - doober
Дата добавления - 16.02.2022 в 23:46
SPIRIT84 Дата: Четверг, 17.02.2022, 21:05 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

doober, эх, если бы я понимал о чем вы :mellow:
ну UDF это пользовательская функция Timing?
Что значит дергается? сколько раз формула в ячейке L2 использует ячейку К2? Если так, то L2 использует ее 2 раза, итого на всем диапазоне 800 раз. И только из-за этого он тупит? Почему тогда на другом компе все летает?
А варианты решения проблемы есть?
 
Ответить
Сообщениеdoober, эх, если бы я понимал о чем вы :mellow:
ну UDF это пользовательская функция Timing?
Что значит дергается? сколько раз формула в ячейке L2 использует ячейку К2? Если так, то L2 использует ее 2 раза, итого на всем диапазоне 800 раз. И только из-за этого он тупит? Почему тогда на другом компе все летает?
А варианты решения проблемы есть?

Автор - SPIRIT84
Дата добавления - 17.02.2022 в 21:05
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!