У меня есть рабочая тетрадь, которая обновляется каждые 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, чтобы вводить только имена файлов?
edit: с ответом 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 скрипт для сохранения книги перезаписывает введенное имя файла