2011-01-17 2 views
0

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

ответ

0

У вас есть варианты.

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

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

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

0

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

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