Возможно ли запланированное автоматическое создание книги Excel с VBA на основе сервера? - PullRequest
0 голосов
/ 17 января 2011

Я хотел бы иметь возможность запланировать запуск макроса Excel (VBA) посреди ночи (после того, как файл будет готов) для создания настраиваемой книги (несколько листов, сводные таблицы, диаграммы, фильтры, контуры)., пользовательское форматирование и т. д.).В настоящее время макрос запускается вручную на следующий день.Кроме того, он должен работать без присмотра на сервере (ноутбук уходит домой ночью!).Кто-нибудь успешно делает что-то подобное?Пожалуйста, никаких хаков на стороне Unix (например, модулей Perl) - нужен полный доступ к функциям VBA, включая функции базы данных.Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 января 2011

Если вы можете оставить Excel запущенным на сервере все время, вы можете использовать Application.OnTime для планирования следующих запусков определенного макроса (как только он запустится, перепланируйте другой в коде макроса).Когда я работал в банковской сфере, мы все это время использовали для выполнения ночных заданий.

Если вы не можете оставить Excel работать, я должен сказать, что вы можете испытывать боль.Можно запустить Excel, используя задание AT (запланированное задание), но у вас могут возникнуть головные боли, заставляя его работать с правильными правами пользователя, и если вы используете какие-либо надстройки, вы будете испытывать регулярные сбои, когда они не смогли загрузить и не позволили запустить Excel,В конце концов, Excel не предназначен для работы на серверах (это на самом деле является нарушением условий использования), и запуск / запуск / остановка не будет надежной системой, даже если вы ее получите.на работу.

0 голосов
/ 17 января 2011

Ну, у вас есть несколько вариантов.

Во-первых, для всех Excel должен быть установлен на сервере. Затем вы создаете запланированное задание для вызова программы.

В этом случае вы можете написать, например, vbscript или .NET программа для вызова приложения, загрузки документа и запуска его содержимого (вашего VBA). Это должно работать на всех. Или вы перемещаете код VBA в программу и нацеливаете Excel на свой код, но еще больше работы

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

...