Добрый день. Excel 2003.
Что хочу:
Создавать 3 прайса xls, csv и csv по таймеру, не закрывая при этом другие открытые книги excel.
Что получил:
Всё работает как надо, за исключением того, что после последней строки макроса: Workbooks("Автоматика.xls").Close открывается новая "Книга4.xls", а если на момент выполнения макроса такая уже открыта, то "Книга5.xls" и т.д., в итоге после дня отсутствия за компьютером может быть открыто 20+ таких книг...
Как это делается:
Запуск по таймеру файла Автоматика.xls
Внутри макрос с автозапуском при открытии
Макрос 3 раза создаёт новую книгу, запускает 3 других макроса из personal.xls
Каждый новый макрос работает в новой книге, сохраняет результат в файл и закрывает книгу, остаётся после работы только открытая первоначальная книга
После выполнения всех строк макроса Автоматика.xls должна закрыть себя И закрывает, но открывается "Книга4.xls"
Вопрос: как закрывать текущую книгу так, чтобы новая книга не открывалас?
Текст макросов такой: (После выполнения строчки • открывается Книга4.xls)
Код |
---|
Workbooks.Add
Run "Personal.xls!Макрос1"
<...Макрос1 начинается...>
<...сам макрос...>
ActiveWorkbook.SaveAs FileName:= "путь\имя.xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
<...Макрос1 закончился...>
Workbooks.Add
Run "Personal.xls!Макрос2"
<...Макрос2 начинается...>
FileName = "путь\имя2.csv"
Open FileName For Output As #1
...
Close #1
Close
ActiveWindow.Close
<...Макрос2 закончился...>
Workbooks.Add
Run "Personal.xls!Макрос3"
<...Макрос3 начинается...>
FileName = "путь\имя3.csv"
Open FileName For Output As #1
Close #1
Close
ActiveWindow.Close
<...Макрос3 закончился...>
sName = "Автоматика.xls"
• Workbooks(sName).Close |