如何在VBA中禁用“插入”命令

我需要一个macros来禁止插入单元格,行和列。 我已经尝试了这些不成功的技巧(除其他外):

Application.CommandBars("Cell").Enabled = False ActiveSheet.Protect AllowInsertingRows:=False, AllowInsertingColumns:=False Application.CommandBars("Worksheet Menu Bar").FindControl _ (ID:=296, Recursive:=True).Enabled = False CommandBars("Cell").FindControl(, 21437).Enabled = False 

在每个试验中,我已经检索到错误,或者只是在select列时禁用行的插入,反之亦然。 我怎样才能达到目标?

你应该能够通过使用正确的参数保护工作表来实现这一点,

尝试将下面的代码放在工作表的对象模块中(在Excel的工作表选项卡上,右键单击并select查看代码 ):

 Private Sub Workbook_SheetActivate(ByVal Sh As Object) 'ProtectSheet ActiveSheet.Protect AllowInsertingColumns:=False, AllowInsertingRows:=False, UserInterfaceOnly:=True End Sub 

更新:您也可以使用菜单工具>>保护>>保护片或function区中的button在审查选项卡中的Excel或撤消。

编辑:如何禁用特定的菜单命令和控件,请参阅Excel MVP Ron de Bruin – 禁用菜单和控件