|
![]() |
#1 |
Участник
|
Сталкивался с подобным: в классе ComExcelDocument_RU в методе getWorkSheets() пришлось поставить задержку 100 мс перед получением списка листов файла, эта задержка помогает в некоторых случаях избежать системной ошибки Excel при выборе листа:
X++: private COM getWorkSheets() { if (!comWorkSheets && m_comDocument) { try { sleep(100); // ЗАДЕРЖКА 100 МС comWorkSheets = m_comDocument.worksheets(); } catch (Exception::Error) { throw error("@GLS101577"); } } return comWorkSheets; } |
|
![]() |
#2 |
Участник
|
Это не помогло. Но направление по-моему в нужную сторону задали.
При длительных расчетах значений ячейки в методе getWorkSheets срабатывает исключение. При чем можно сделать отчет, в котором одна строка = Константа. Отчет выполняется без ошибок. Но если начинаешь дебажить, то этот же отчет уже ловит исключение. Т.е. зависимость от времени выполнения. Какие идеи? X++: private COM getWorkSheets() { if (!comWorkSheets && m_comDocument) { try { // sleep(100); // ena 24.07.2018, sleep 100 МС comWorkSheets = m_comDocument.worksheets(); } catch (Exception::Error) { throw error("@GEE6043"); // тут ловлю исключение } } return comWorkSheets; } |
|
![]() |
#3 |
Участник
|
Этот пост смотрели?
Генератор финансовых отчётов
__________________
// no comments |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от dech
![]() Этот пост смотрели?
Генератор финансовых отчётов Если не сложно тыкните в нужное место. |
|
![]() |
#5 |
Участник
|
|
|
![]() |
#6 |
Участник
|
Аналогичные проблемы обсуждались, есть разные варианты, посмотрите вот эти темы Макросы StartSafeCall_RU и Ошибка времени выполнения в ComExcelDocument_RU.findRange()
__________________
Sergey Nefedov |
|
![]() |
#7 |
Участник
|
Закат солнца вручную.
На сколько я понял, то 1. Можно изменить макрос, например увеличить кол-во попыток и время таймаута 2. Обертка с ComVariant для всех методов ComExcelDocument_RU однако... |
|
|
|