Как пере сохранить *.XLSM
|
|
Вторник, 12 Декабря 2017 г. 01:57
+ в цитатник
Всем привет!
Споткнулся на ровном месте...
Тривиальная задача, заезженный код, но ошибка run-time 1004 (типа выберите другое расширение, с таким так нельзя)...
Нужно из акцеса (в данном случае 2010, а может и не важно) открыть файл экселя (формат 2007) с макросами *.xlsm, задублировать в нем один из листов, сохранить и закрыть...
Ниже код, который отрабатывает с форматами *.xlsx, *.xls на ура, но на формате *.xlsm падает в ошибку в строке сохранения
Dim sfile As String
Dim xl As Object
Dim wb As Object
Dim ws As Object
sfile = CStr(Application.CurrentProject.Path) & "\OSV.xlsm"
Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Add(sfile)
xl.Visible = False 'сам процесс делаем не видимым
xl.Application.DisplayAlerts = False ' чтоб эксель не спрашивал подтверждение при сохранении
wb.Sheets(2).Select ' выбираем второй лист
wb.Sheets(2).Copy After:=wb.Sheets(2) ' делаем его копию после него же
wb.SaveAs Application.CurrentProject.Path & "\OSV.xlsm" ' и вот тут падаем в ошибку при попытке сохранить, причем только на *.xlsm
wb.Close
xl.Quit
Set wb = Nothing
Set xl = Nothing
Причем если процесс отображать, предупреждения не отключать, то руками сохранить результат можно, выбрав принудительно формат книгу с макросами xlsm...
Какая то фигня с wb.SaveAs (имя другое пробовал, не помогает, ругается конкретно на xlsm)
Короче глобально вопрос так, программно файл .xlsm открывается и модифицируется, но потом проблема сохранить его в .xlsmКто чем может плиз, заранее снимаю шляпу...
http://www.sql.ru/forum/1279815/kak-pere-sohranit-xlsm
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-