Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Контроль выхода из экселя / 16 сообщений из 16, страница 1 из 1
07.01.2018, 14:12
    #39580295
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
Здравствуйте!

Запустил макрос на терминале, который делает сложный расчет и выполняется около 30 часов. Закрываю терминал (нажимаю на крестик сверху посередине), но не завершение сеанса. Через двое суток захожу на терминал, то excel закрыт, будто терминал перезагружали. И когда открываешь, то слева предлагает открыть файл, который сохранялся автосохранением. Дата авто сохраненного файла совпадает с датой последнего файла, который запускал. У системных администраторов спрашиваю, не перезагружали ли сервера, а они говорят нет.

Что тут может быть такое? Как можно здесь отследить причину выходы из экселя по системным причинам? Если ошибка в коде во время запуска, то обычно вылезает диалоговое окно из редактора Visual Basic и выполнение макроса как бы на паузе. Если использовать логи типа Debug.Print, то эксель закроется и логи сотрутся.

Макрос после каждой итерации добавляет строки. В итоге выкладывает 35 000 строк с рассчитанными значениями на двух листах. Файл в итоге должен весить 35 метров.
...
Рейтинг: 0 / 0
07.01.2018, 16:52
    #39580330
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
ferzmikk,
значит таймаут есть у сервера, чтобы принудительно завершать сеанс через какое-то время неактивности. Сисадмин может увеличить таймаут если его заинтересовать ;)
А вообще, при таких длительных вычислениях, макрос должен сам сохранять файл с текущим состоянием расчета, скажем, раз в 15 минут, чтобы после принудительного закрытия приложения можно было продолжить расчет с известного этапа.
Ну и макрос на 30 часов явно нуждается в оптимизации или смене языка программирования.
...
Рейтинг: 0 / 0
08.01.2018, 16:00
    #39580571
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
Казанскийferzmikk,
значит таймаут есть у сервера, чтобы принудительно завершать сеанс через какое-то время неактивности.А то, что макрос работает, то это для системы не активность? Возможно ли как то написать в макросе так, чтобы сеанс был якобы активным?
...
Рейтинг: 0 / 0
08.01.2018, 16:14
    #39580576
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
ferzmikkА то, что макрос работает, то это для системы не активность?это не активность ПОЛЬЗОВАТЕЛЯ. А так - там и так в сеансе много всего позапущено, если на все смотреть, то и таймаут смысла иметь не будет. Сам эксель - он ведь тоже не простаивает, когда запущен.

Ну попробуй периодически SendKeys выдавать, не уверен, что поможет
...
Рейтинг: 0 / 0
08.01.2018, 16:24
    #39580582
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
пример скрипта с обсуждением http://www.cyberforum.ru/visual-basic/thread1710142.html
...
Рейтинг: 0 / 0
08.01.2018, 17:07
    #39580599
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
Казанскийпример скрипта с обсуждением http://www.cyberforum.ru/visual-basic/thread1710142.html Если запустить код, и работаешь например в текстовом редакторе, то в текстовом редакторе ставит перенос строк. Можно ли сделать так, чтобы не касалось к другим приложениям?
...
Рейтинг: 0 / 0
08.01.2018, 17:47
    #39580613
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
ferzmikk,
попробуйте .sendkeys "{F16}" - код под эту кнопку зарезервирован в системе, но вряд ли в какой-то программе используется :)
...
Рейтинг: 0 / 0
10.01.2018, 07:57
    #39581437
ldfanate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
полагаю, что одними senkey не обойдёшься, скорее всего через declare объявить SendMessage и слать WM_KEYPRESS какомунить окну-пустышке (например notepad из экселя открыть и ему слать).
...
Рейтинг: 0 / 0
11.01.2018, 21:58
    #39582858
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
ldfanate,
Предложение выше с сисадмином кажется правильным.
...
Рейтинг: 0 / 0
12.01.2018, 04:33
    #39582950
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
ferzmikk,

Терминал на какой ОС? Это не виртуальная машина?
Как-то попал, что физический комп использовали по ночам тупо перегружая - типа свет моргал, а бесперебойное не айс. Тоже пытался понять, чего это запущенные на ночь задачи не выполнены.
...
Рейтинг: 0 / 0
12.01.2018, 04:47
    #39582951
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
ferzmikk,

Попробуй в макросе сохранять результат почаще. А вместо debug.print пиши логика в текстовый файл. Хотя бы вычислить на сколько хватает твоего терминала.

Просмотри журнал событий приложения. Если верно понял, автосохраненный файл предлагается открыть сразу, а значит excel упал, о чем запись должна быть. Там же рядом может и причина завершения сесии.

Поменяй метод записи значений в файл, например пиши во внешний с разделителями, а по окончанию макроса импортируй. Или пиши в БД. Вдруг 30 часов не понадобиться.
...
Рейтинг: 0 / 0
12.01.2018, 04:56
    #39582953
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
Ну и 35 метров и терминальный доступ это не айс. Попробуй трассировать последнюю итерацию с уже большим файлом. Эксель часто падает если с большими файлами по сети пытаешься работать.

. Как получился полный файл? Ты мышу двигал 30 часов? Или на другом ПК?

Может тупо памяти не хватает? Объекты после использования чистишь?
...
Рейтинг: 0 / 0
12.01.2018, 05:05
    #39582954
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
Если дело именно в неверном отключении от сессии терминала, то после отключения можно не ждать 30 часов. Пара минут и уже проверишь магические действия с крестиком посередине приводят к ошибке или руки автора макроса/сисадмина.
...
Рейтинг: 0 / 0
12.01.2018, 07:00
    #39582966
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
Bobgosferzmikk,

Терминал на какой ОС? Это не виртуальная машина?Удаленный сервер. Windows Server R8 Standart.
...
Рейтинг: 0 / 0
12.01.2018, 07:03
    #39582968
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
Казанскийferzmikk,
значит таймаут есть у сервера, чтобы принудительно завершать сеанс через какое-то время неактивности.В общем, в настройке при бездействии сеанса определенное количество часов - отключался.
...
Рейтинг: 0 / 0
20.01.2018, 08:14
    #39587418
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контроль выхода из экселя
ferzmikkКазанскийferzmikk,
значит таймаут есть у сервера, чтобы принудительно завершать сеанс через какое-то время неактивности.В общем, в настройке при бездействии сеанса определенное количество часов - отключался. те решили вопрос с сисадмином?
а может кто подскажет как добраться до параметра завершения сеанса из vba?
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Контроль выхода из экселя / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]