Здравствуйте, уважаемые форумчане. Прошу помощи в оптимизации своей работы. У меня профильная программа выгружает в эксель сразу несколько десятков документов и каждый в отдельном процессе в диспетчере задач. Моя задача все их распечатать и закрыть без сохранения. Помогите пожалуйста. Заранее очень сильно благодарю!
Здравствуйте, уважаемые форумчане. Прошу помощи в оптимизации своей работы. У меня профильная программа выгружает в эксель сразу несколько десятков документов и каждый в отдельном процессе в диспетчере задач. Моя задача все их распечатать и закрыть без сохранения. Помогите пожалуйста. Заранее очень сильно благодарю!pahunchil
Доброе время суток Если предположить, что других процессов Excel, кроме созданных профильной программой, не запущено, то можно будет воспользоваться таким vbs скриптом [vba]
Код
Option Explicit Dim xlApp, pBook
Set xlApp = GetExcel() Do Until xlApp Is Nothing For Each pBook In xlApp.Workbooks 'код для печати '============== pBook.Close False Next xlApp.Quit Set xlApp = Nothing WScript.Sleep 2000 Set xlApp = GetExcel() Loop
Private Function GetExcel() On Error Resume Next Dim xls Err.Clear Set xls = GetObject(,"Excel.Application") If Err.Number = 0 Then Set GetExcel = xls Else Set GetExcel = Nothing End If End Function
[/vba] Успехов.
Доброе время суток Если предположить, что других процессов Excel, кроме созданных профильной программой, не запущено, то можно будет воспользоваться таким vbs скриптом [vba]
Код
Option Explicit Dim xlApp, pBook
Set xlApp = GetExcel() Do Until xlApp Is Nothing For Each pBook In xlApp.Workbooks 'код для печати '============== pBook.Close False Next xlApp.Quit Set xlApp = Nothing WScript.Sleep 2000 Set xlApp = GetExcel() Loop
Private Function GetExcel() On Error Resume Next Dim xls Err.Clear Set xls = GetObject(,"Excel.Application") If Err.Number = 0 Then Set GetExcel = xls Else Set GetExcel = Nothing End If End Function
anvg, я дико извиняюсь. Спасибо огромное за ответ. Вы не могли бы чуть поподробнее. Я в языке vba не разбираюсь, знаю только как записать макрос с помощью функции записи и потом знаю где его отредактировать , но я так понял, что это код не полный? Что я должен с ним сделать?
anvg, я дико извиняюсь. Спасибо огромное за ответ. Вы не могли бы чуть поподробнее. Я в языке vba не разбираюсь, знаю только как записать макрос с помощью функции записи и потом знаю где его отредактировать , но я так понял, что это код не полный? Что я должен с ним сделать?pahunchil
Вот как. А по тексту вопроса не скажешь. Меняете 'код для печати на [vba]
Код
pBook.PrintOut
[/vba] Копируете текст скрипта в текстовый файл и сохраняете в файл с расширением vbs. Когда нужно запускаете. Он оправит содержимое открытых файлов всех экземпляров Excel, а потом закроет их. Успехов.
Вот как. А по тексту вопроса не скажешь. Меняете 'код для печати на [vba]
Код
pBook.PrintOut
[/vba] Копируете текст скрипта в текстовый файл и сохраняете в файл с расширением vbs. Когда нужно запускаете. Он оправит содержимое открытых файлов всех экземпляров Excel, а потом закроет их. Успехов.anvg