我正在编写一个宏,我需要禁用 VBA 已将所有信息复制并粘贴到的工作簿上的保存功能。这可能吗?
问问题
87675 次
3 回答
60
您可以使用 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
于 2012-09-04T13:38:04.660 回答
11
您可以使用该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
于 2012-09-04T13:35:55.707 回答
0
还有一个旁注;我在使用上述代码时遇到了困难,因为我的组织使用的是匈牙利版本的 Excel。因此,如果您使用非英语 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
于 2020-05-27T08:08:40.600 回答