У меня есть рабочая книга, которая обновляется каждые 4 недели новыми данными. При обновлении его необходимо сохранить с определенным именем и с определенными параметрами. У меня уже был скрипт, который сохраняет книгу в новый файл, поэтому я использовал этот скрипт и модифицировал его.
Sub save_workbook_name()
Dim workbook_Name As Variant
Dim location As String
location = "N:\IRi\"
workbook_Name = Application.GetSaveAsFilename
If workbook_Name <> False Then
ActiveWorkbook.SaveAs Filename:=Workbook.Name, WriteResPassword:="TM", FileFormat:=50
End If
End Sub
Когда я использую этот код и нажимаю кнопку, появляется всплывающее окно с вопросом, как я хочу сохранить файл:
Но не устанавливается формат файла. Установлен пароль на открытие файла Я заметил при открытии сохраненного файла. Я знаю по себе, что мне нужно добавить расширение .xslb при сохранении файла, но я не уверен в коллеге, который также работает с этим файлом.
Когда я ввожу имя файла и расширение, я получаю сообщение об ошибке:
ошибка 424: нужен объект
мои пожелания относительно вариантов сохранения:
- тип файла должен быть установлен на .xlsb
- чтобы сохраненная копия не обновлялась, я хочу, чтобы она сохранялась с защитой паролем на открытие
Как я могу сделать так, чтобы подпрограмма уже добавляла расширение .xlsb, чтобы нужно было вводить только имена файлов?
редактировать: с ответом Marcucciboy2 я изменил сценарий на:
Sub save_workbook_name()
Dim workbook_Name As Variant
Dim location As String
workbook_Name = Application.GetSaveAsFilename(fileFilter:="Excel binary sheet (*.xlsb), *.xlsb", InitialFileName:="N:\IRi\")
If workbook_Name <> False Then
ActiveWorkbook.SaveAs WriteResPassword:="TM", FileFormat:=50
End If
End Sub
И теперь он отлично работает для сохранения.
Дополнительный вопрос, касающийся этого скрипта, и введенное имя публикуется в новом вопросе: скрипт vba для сохранения книги перезаписывает введенное имя файла
GetSaveAsFilename
, попробуйтеApplication.GetSaveAsFilename(fileFilter:="Excel binary sheet (*.xlsb), *.xlsb")
- person Marcucciboy2   schedule 07.09.2018