保存工作簿的 vba 脚本覆盖输入的文件名
Posted
技术标签:
【中文标题】保存工作簿的 vba 脚本覆盖输入的文件名【英文标题】:vba script to save workbook overwrites entered filename 【发布时间】:2018-09-10 12:43:38 【问题描述】:使用下面输入的脚本,我希望使用用户输入的名称保存我的工作簿,比如说
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\Periode Rapportage Px")
If workbook_Name <> False Then
ActiveWorkbook.SaveAs WriteResPassword:="TM", FileFormat:=50
End If
End Sub
但是,当我现在尝试使用不同的名称保存文件时,假设将 X 替换为 9,结果证明脚本只允许使用与原始文件名相同的文件名进行保存。所以我输入了 Periode Rapportage P9(.xlsb),然后 Excel 以文件名 Periode Rapportage Zelfzorg v2.xlsb 保存文件。
关于为什么会发生这种情况的任何线索?原始文件保存有密码以写入安全性。
输入所需的文件名:
按确定/保存后弹出问题:
显然输入的所需文件名已更改回其原始文件名。
有没有办法解决这个问题,让脚本以用户输入的名称保存文件?
【问题讨论】:
使用 - ActiveWorkbook.SaveAs filename:=workbook_Name, WriteResPassword:="TM", fileformat:=50 谢谢。我一直在搞砸这个,不知何故忘记将它包含在脚本中。 【参考方案1】:您没有在 saveas 行中包含文件名:
ActiveWorkbook.SaveAs filename:=workbook_name, WriteResPassword:="TM", FileFormat:=50
【讨论】:
谢谢。我一直在搞砸这个,不知何故忘记将它包含在脚本中。以上是关于保存工作簿的 vba 脚本覆盖输入的文件名的主要内容,如果未能解决你的问题,请参考以下文章
Excel VBA在生成副本的工作表中插入本工作簿中的VBA模块代码