我正在编写一个宏,我需要在VBA复制并粘贴所有信息的工作簿上禁用保存功能。这可能吗?
答案 0 :(得分:51)
您可以使用Workbook_BeforeSave事件来实现此目的,禁用CommandBars不会使用CTRL + S等快捷方式阻止用户。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "You can't save this workbook!"
Cancel = True
End Sub
答案 1 :(得分:7)
您可以使用Application
对象直接访问工具栏按钮:
Private Sub Workbook_Open()
Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls("Save As...").Enabled = False
Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls("Save").Enabled = False
End Sub
答案 2 :(得分:0)
另外一个注释;由于我的组织使用匈牙利语版本的Excel,因此在使用上述代码时遇到了困难。 因此,如果您使用NON ENGLISH EXCEL,则必须以Excel的本地语言指定Controls元素...在我的情况下,有效的方法是:
Application.CommandBars("Worksheet Menu Bar").Controls("Fá&jl").Controls("Menté&s má&ské&nt...").Enabled = False
Application.CommandBars("Worksheet Menu Bar").Controls("Fá&jl").Controls("Menté&s").Enabled = False