“如何禁用”;插入“;VBA中的命令
我需要一个宏来禁用插入单元格、行和列。我尝试过这些不成功的技巧(其中包括): 在每次试验中,我都检索到错误,或者在选择列时禁用行的插入,反之亦然。“如何禁用”;插入“;VBA中的命令,vba,excel,Vba,Excel,我需要一个宏来禁用插入单元格、行和列。我尝试过这些不成功的技巧(其中包括): 在每次试验中,我都检索到错误,或者在选择列时禁用行的插入,反之亦然。 如何实现我的目标?您应该能够通过使用正确的参数保护您的工作表来实现这一目标 尝试将以下代码放入工作表的对象模块中(在Excel的“工作表”选项卡上,单击鼠标右键并选择“查看代码”): 更新:您也可以在Excel中使用菜单“工具”“保护”>“保护工作表”或在功能区上的“审阅”选项卡中的按钮来执行或撤消此操作 编辑:有关如何禁用特定菜单命令和控件,请参见
如何实现我的目标?您应该能够通过使用正确的参数保护您的工作表来实现这一目标 尝试将以下代码放入工作表的对象模块中(在Excel的“工作表”选项卡上,单击鼠标右键并选择“查看代码”): 更新:您也可以在Excel中使用菜单“工具”“保护”>“保护工作表”或在功能区上的“审阅”选项卡中的按钮来执行或撤消此操作
编辑:有关如何禁用特定菜单命令和控件,请参见欢迎使用堆栈溢出。请阅读并了解如何提出一个好问题,从而生成好的有用答案。实际上,我想做的是使用菜单禁用“插入行”选项,因此我真正希望宏执行的是不允许用户使用命令栏插入行。我需要强制用户使用带有宏的按钮插入行。因此,如果我保护工作表,就不可能插入行。您的代码可以取消保护、插入和重新保护,或者,您可以在保护时指定
UserInterfaceOnly:=True
参数,以便您的代码仍然可以运行。@EvaFP:有关如何禁用特定菜单命令和控件,请参阅@EvaFP:使用UserInterfaceOnly:=True
尝试新代码谢谢您的建议!现在它可以工作了,但当我点击任何按钮运行宏时,工作表会自动失去保护。。。
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
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'ProtectSheet
ActiveSheet.Protect AllowInsertingColumns:=False, AllowInsertingRows:=False, UserInterfaceOnly:=True
End Sub