【发布时间】:2015-07-30 21:43:51
【问题描述】:
我创建了一个 Excel 电子表格用作文档模板。除了需要输入信息的单元格外,我已锁定工作簿以防被更改。然后我添加了一个 vba 脚本,每次打开文件时都会计数,密码保护被解锁,然后 vba 脚本更新并再次启用密码保护。这是为了我公司自己的内部文件跟踪。我遇到的问题是在执行 vba 脚本后立即自动保存文件,然后让另一个 vba 脚本禁用保存功能,只允许另存为功能。我不希望文件被意外覆盖。
我还想要一个 vba 脚本在文件旁边放置一个命令按钮,该按钮可以使用标准 excel 格式另存为,并在可能的情况下使用单元格数据作为文件名。
这是我到目前为止所拥有的,我对此很陌生。
Private Sub Workbook_Open()
ActiveSheet.Unprotect Password:="PassWord"
Sheets(1).[I9] = Sheets(1).[I9] + 1
ActiveSheet.Protect Password:="PassWord"
ActiveWorkbook.Save
End Sub
提前感谢您的宝贵时间。
更新
这是我目前的代码
Private Sub Workbook_Open()
ActiveSheet.Unprotect Password:="PassWord"
Sheets(1).[I9] = Sheets(1).[I9] + 1
ActiveSheet.Protect Password:="PassWord"
Application.DisplayAlerts = False
ChDir "C:\Users\BlahBlah\Desktop"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\BlahBlah\Desktop\Quote Detail Log Proto.xltm", FileFormat:= _
xlOpenXMLTemplateMacroEnabled, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.DisplayAlerts = True
End Sub
现在的问题是,当使用保存按钮或 Ctrl+S 时,它只是再次保存覆盖,即使它是模板格式,并且应该弹出一个另存为框。
我的另一个障碍是命令按钮“另存为”,使用单元格 A1、G9 和 I9 作为文件名。我尝试过的所有代码都不起作用,或者很可能我复制了错误/输入了错误的信息并且根本不理解它。
【问题讨论】: