|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
Здравствуйте! Запустил макрос на терминале, который делает сложный расчет и выполняется около 30 часов. Закрываю терминал (нажимаю на крестик сверху посередине), но не завершение сеанса. Через двое суток захожу на терминал, то excel закрыт, будто терминал перезагружали. И когда открываешь, то слева предлагает открыть файл, который сохранялся автосохранением. Дата авто сохраненного файла совпадает с датой последнего файла, который запускал. У системных администраторов спрашиваю, не перезагружали ли сервера, а они говорят нет. Что тут может быть такое? Как можно здесь отследить причину выходы из экселя по системным причинам? Если ошибка в коде во время запуска, то обычно вылезает диалоговое окно из редактора Visual Basic и выполнение макроса как бы на паузе. Если использовать логи типа Debug.Print, то эксель закроется и логи сотрутся. Макрос после каждой итерации добавляет строки. В итоге выкладывает 35 000 строк с рассчитанными значениями на двух листах. Файл в итоге должен весить 35 метров. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2018, 14:12 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
ferzmikk, значит таймаут есть у сервера, чтобы принудительно завершать сеанс через какое-то время неактивности. Сисадмин может увеличить таймаут если его заинтересовать ;) А вообще, при таких длительных вычислениях, макрос должен сам сохранять файл с текущим состоянием расчета, скажем, раз в 15 минут, чтобы после принудительного закрытия приложения можно было продолжить расчет с известного этапа. Ну и макрос на 30 часов явно нуждается в оптимизации или смене языка программирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2018, 16:52 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
Казанскийferzmikk, значит таймаут есть у сервера, чтобы принудительно завершать сеанс через какое-то время неактивности.А то, что макрос работает, то это для системы не активность? Возможно ли как то написать в макросе так, чтобы сеанс был якобы активным? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2018, 16:00 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
ferzmikkА то, что макрос работает, то это для системы не активность?это не активность ПОЛЬЗОВАТЕЛЯ. А так - там и так в сеансе много всего позапущено, если на все смотреть, то и таймаут смысла иметь не будет. Сам эксель - он ведь тоже не простаивает, когда запущен. Ну попробуй периодически SendKeys выдавать, не уверен, что поможет ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2018, 16:14 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
пример скрипта с обсуждением http://www.cyberforum.ru/visual-basic/thread1710142.html ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2018, 16:24 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
Казанскийпример скрипта с обсуждением http://www.cyberforum.ru/visual-basic/thread1710142.html Если запустить код, и работаешь например в текстовом редакторе, то в текстовом редакторе ставит перенос строк. Можно ли сделать так, чтобы не касалось к другим приложениям? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2018, 17:07 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
ferzmikk, попробуйте .sendkeys "{F16}" - код под эту кнопку зарезервирован в системе, но вряд ли в какой-то программе используется :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2018, 17:47 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
полагаю, что одними senkey не обойдёшься, скорее всего через declare объявить SendMessage и слать WM_KEYPRESS какомунить окну-пустышке (например notepad из экселя открыть и ему слать). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2018, 07:57 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
ldfanate, Предложение выше с сисадмином кажется правильным. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 21:58 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
ferzmikk, Терминал на какой ОС? Это не виртуальная машина? Как-то попал, что физический комп использовали по ночам тупо перегружая - типа свет моргал, а бесперебойное не айс. Тоже пытался понять, чего это запущенные на ночь задачи не выполнены. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2018, 04:33 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
ferzmikk, Попробуй в макросе сохранять результат почаще. А вместо debug.print пиши логика в текстовый файл. Хотя бы вычислить на сколько хватает твоего терминала. Просмотри журнал событий приложения. Если верно понял, автосохраненный файл предлагается открыть сразу, а значит excel упал, о чем запись должна быть. Там же рядом может и причина завершения сесии. Поменяй метод записи значений в файл, например пиши во внешний с разделителями, а по окончанию макроса импортируй. Или пиши в БД. Вдруг 30 часов не понадобиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2018, 04:47 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
Ну и 35 метров и терминальный доступ это не айс. Попробуй трассировать последнюю итерацию с уже большим файлом. Эксель часто падает если с большими файлами по сети пытаешься работать. . Как получился полный файл? Ты мышу двигал 30 часов? Или на другом ПК? Может тупо памяти не хватает? Объекты после использования чистишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2018, 04:56 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
Если дело именно в неверном отключении от сессии терминала, то после отключения можно не ждать 30 часов. Пара минут и уже проверишь магические действия с крестиком посередине приводят к ошибке или руки автора макроса/сисадмина. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2018, 05:05 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
Bobgosferzmikk, Терминал на какой ОС? Это не виртуальная машина?Удаленный сервер. Windows Server R8 Standart. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2018, 07:00 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
Казанскийferzmikk, значит таймаут есть у сервера, чтобы принудительно завершать сеанс через какое-то время неактивности.В общем, в настройке при бездействии сеанса определенное количество часов - отключался. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2018, 07:03 |
|
Контроль выхода из экселя
|
|||
---|---|---|---|
#18+
ferzmikkКазанскийferzmikk, значит таймаут есть у сервера, чтобы принудительно завершать сеанс через какое-то время неактивности.В общем, в настройке при бездействии сеанса определенное количество часов - отключался. те решили вопрос с сисадмином? а может кто подскажет как добраться до параметра завершения сеанса из vba? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2018, 08:14 |
|
|
start [/forum/topic.php?fid=61&msg=39582966&tid=2172431]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 326ms |
total: | 479ms |
0 / 0 |