如何使用VBA禁用Excel中的添加工作表button?

我有一个工作簿,我想禁用选项卡旁边的添加新工作表button。 我已经search并find以下内容,禁用工作簿上的插入选项,这是伟大的。

Application.CommandBars("Ply").FindControl(, 945).Enabled = False Application.CommandBars("Insert").Controls(4).Enabled = False 

但是我还没有findAdd New Sheetbutton的命令。 有没有一个地方列出了所有这些选项或我可以用来识别控件或button的工具。

工作簿是共享的,所以在创build时自动删除工作表将不起作用。

保护结构不起作用,并引发以下错误:

在这里输入图像描述

这不是一个适当的解决你的实际问题,但它会给你想做什么的幻想…

在ThisWorkbook模块中,将其添加到单元格A1中,使用“DeleteThisSheet”即时隐藏所有新工作表

 Private Sub Workbook_NewSheet(ByVal Sh As Object) Sh.Cells(1, 1) = "DeleteThisSheet" Sh.Visible = xlSheetVeryHidden End Sub 

很显然,这将使隐藏工作表杂乱无章,因此您可以使用此代码不时清除它们以closures共享并删除隐藏的工作表。

 Sub removeSheets() Dim ws As Worksheet ' Turn off sharing Application.DisplayAlerts = False If ActiveWorkbook.MultiUserEditing Then ActiveWorkbook.ExclusiveAccess End If ' Delete veryhidden sheets with delete code For Each ws In ThisWorkbook.Sheets If ws.Visible = xlSheetVeryHidden And ws.Cells(1, 1) = "DeleteThisSheet" Then ws.Visible = xlSheetVisible ws.Delete End If Next ws ' Turn sharing back on If Not ActiveWorkbook.MultiUserEditing Then ActiveWorkbook.SaveAs ActiveWorkbook.Name, accessmode:=xlShared End If Application.DisplayAlerts = True End Sub 

正如我所说,这不是理想的,但至less可以达到你的目的,虽然可能不会经得起许多人反复试图添加新的表格。 你可能会添加一个msgbox到newssheet代码,沿着'这个动作已经被禁止'的话来说一些东西来阻止他们重试。 我会密切关注这个主题,看看有没有人提出一个合适的解决scheme,学习新的东西总是很好的。

ThisWorkbook代码表中,粘贴以下内容。

 Option Explicit Private Sub Workbook_NewSheet(ByVal Sh As Object) Application.DisplayAlerts = False Sh.Delete End Sub 

任何新build(或复制)的工作表被立即删除。

不知道这是否解决了这个问题:

 Application.CommandBars("Insert").Controls(4).Visible = False 

这使用Visible属性。