Доброго времени суток, уважаемые форумчане!
Наперед извиняюсь, если оффтоп, шерстил форум но не нашел.
Очень надеюсь на вашу помощь вот в такой ситуации. Пришлось мне работать в одной учетной программе, а там, для удобства, любые данные можно выгрузить в Excel. Очень полезная функция, скажу я вам, только вот по умолчанию книга с данными сохраняется в папке Temp, и изменить это никак не возможно. В результате - одно неверное "закрытие", и весь отчет канул в Лету, да еще и имя книги - рандомный набор символов - попробуй разбери где что. И вот надумал я создать макрос по своим функциям аналогичный пункту меню "Сохранить как...", зачем спросите? Да для того чтобы можно было назначить его на какую-нибудь комбинацию клавиш.(Помнится мне в Open/Libre Office наряду с "Сохранить" [Ctrl+S], есть и комбинация "Сохранить как..." [Ctrl+Shift+S], а вот в Excel, к сожалению, такой нет). Получился у меня вот такой код:
Вот только сохраняет он коректно только книги в формате .xls (97-2003) и .xlsx (2007-2010), а при попытке сохранить книгу в .xlsb и .xlsm дает ошибку:
При ручном введении расширения - та же ошибка.
Подскажите пожалуйста какой выход из этой ситуации.
P.S. И еще - как прописать по умолчанию какую-то папку, на которой всегда будет открываться
окно вызваное через Application.GetSaveAsFilename (например "Мои документы")
Наперед извиняюсь, если оффтоп, шерстил форум но не нашел.
Очень надеюсь на вашу помощь вот в такой ситуации. Пришлось мне работать в одной учетной программе, а там, для удобства, любые данные можно выгрузить в Excel. Очень полезная функция, скажу я вам, только вот по умолчанию книга с данными сохраняется в папке Temp, и изменить это никак не возможно. В результате - одно неверное "закрытие", и весь отчет канул в Лету, да еще и имя книги - рандомный набор символов - попробуй разбери где что. И вот надумал я создать макрос по своим функциям аналогичный пункту меню "Сохранить как...", зачем спросите? Да для того чтобы можно было назначить его на какую-нибудь комбинацию клавиш.(Помнится мне в Open/Libre Office наряду с "Сохранить" [Ctrl+S], есть и комбинация "Сохранить как..." [Ctrl+Shift+S], а вот в Excel, к сожалению, такой нет). Получился у меня вот такой код:
Код |
---|
Sub Save_Ass () Const iTitle = "Сохранение рабочей книги" Const FilterList = "Книга Excel 97-2003 (*.xls), *.xls,Книга Excel (*.xlsx), *.xlsx,Книга Excel (макро) (*.xlsm), *.xlsm,Книга Excel (двоичная) (*.xlsb), *.xlsb" Dim strName1 As String strName1 = "Книга" strName2 = Application.GetSaveAsFilename(InitialFileName:=strName1, filefilter:=FilterList) If strName2 = "False" Then MsgBox prompt:="Сохранение отменено", Title:=iTitle Else ActiveWorkbook.SaveAs Filename:=strName2 End If End Sub |
Вот только сохраняет он коректно только книги в формате .xls (97-2003) и .xlsx (2007-2010), а при попытке сохранить книгу в .xlsb и .xlsm дает ошибку:
Цитата |
---|
Run-time error '1004' Данное расширение нельзя использовать с выбранным типом файла. Измените расширение в поле "Имя файла" или выбирите другой тип файла в списке "Тип файла". |
Подскажите пожалуйста какой выход из этой ситуации.
P.S. И еще - как прописать по умолчанию какую-то папку, на которой всегда будет открываться
окно вызваное через Application.GetSaveAsFilename (например "Мои документы")