vba 保存工作簿的例程没有预期的结果
vba routine to save workbook does not have desired result
我有一个工作簿,每 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
现在它非常适合保存。
有关此脚本和输入名称的其他问题发布在新问题中:
我认为问题可能是您没有过滤从 GetSaveAsFilename
收到的文件名,所以尝试:
Application.GetSaveAsFilename(fileFilter:="Excel binary sheet (*.xlsb), *.xlsb")
我有一个工作簿,每 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
现在它非常适合保存。
有关此脚本和输入名称的其他问题发布在新问题中:
我认为问题可能是您没有过滤从 GetSaveAsFilename
收到的文件名,所以尝试:
Application.GetSaveAsFilename(fileFilter:="Excel binary sheet (*.xlsb), *.xlsb")