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

时间:2014-07-08 08:30:38

标签: excel vba excel-vba

我需要一个宏来禁用插入单元格,行和列。我尝试过这些不成功的技巧(等等):

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

在每次试验中,我都检索到错误,或者只是在选择列时禁用了行的插入,反之亦然。 我怎样才能实现目标?

1 个答案:

答案 0 :(得分:1)

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

尝试将以下代码放在工作表的对象模块中(在Excel的工作表标签上,右键单击并选择查看代码):

Private Sub Workbook_SheetActivate(ByVal Sh As Object) 

     'ProtectSheet
    ActiveSheet.Protect AllowInsertingColumns:=False, AllowInsertingRows:=False, UserInterfaceOnly:=True         
End Sub 

更新:你也可以在Excel中使用菜单工具>> PROTECTION>>保护单进行或撤消此功能,或者在功能区上按钮位于评论中标签

编辑:有关如何禁用特定菜单命令和控件的信息,请参阅Excel MVP Ron de Bruin - Disable menus & controls