我目前正在尝试弄清楚如何禁用工作簿中单元格/行/列的删除/插入选项。目前,我正在使用以下VBA代码来禁用行和列的Delete选项。但是,这仍然允许我删除单元格(不是清除内容,而是其他单元格需要移动的“删除”)。另外,我还想禁用行/列/单元格的插入选项。这是我当前正在使用的代码:
Private Sub Workbook_open()
Dim dis As CommandBarControl
For Each dis In Application.CommandBars.FindControls(ID:=293)
dis.Enabled = False
Next
For Each dis In Application.CommandBars.FindControls(ID:=294)
dis.Enabled = False
Next
End Sub
我试图搜索删除单元格的“ ID”并插入选项,以便我可以复制上面的代码,但似乎找不到。任何帮助将不胜感激,谢谢! :)
答案 0 :(得分:0)
您可以使用带有VBA代码的工作表保护,如下所示:
Private Sub Workbook_Open()
Dim sh As Variant
For Each sh In Sheets
sh.Protect AllowInsertingColumns:=False, AllowInsertingRows:=False, UserInterfaceOnly:=True
Next sh
End Sub
答案 1 :(得分:0)
禁用工作簿中行/列/单元格的删除/插入选项的经典答案是简单地使用密码保护工作表并定义参数中可以执行的操作。
这是一个示例,不允许插入列和行:
Worksheets(1).Protect AllowInsertingColumns:=True, AllowInsertingRows:=True
答案 2 :(得分:0)
以下是一些我发现的数字:
Application.CommandBars.FindControls(ID:=292) 'delete - from cell
Application.CommandBars.FindControls(ID:=293) 'delete - from row
Application.CommandBars.FindControls(ID:=294) 'delete - from column
Application.CommandBars.FindControls(ID:=3183) 'insert - from rows & columns
Application.CommandBars.FindControls(ID:=3181) 'insert - from cell
我的来源:here