禁用插入工作表

时间:2013-11-23 16:10:37

标签: excel excel-vba excel-2007 vba

有没有办法阻止人们手动插入工作表。我有一个表单,根据用户放入的信息自动创建工作表。我目前使用的代码将阻止人们创建工作表,但它也阻止我的表单创建工作表。这是我正在使用的。它位于工作簿模块中。

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

1 个答案:

答案 0 :(得分:3)

在模块

中声明
Public BoolAdd As Boolean

这在Workbook_NewSheet

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    If BoolAdd = False Then
        Application.DisplayAlerts = False
        Sh.Delete
        Application.DisplayAlerts = True
    Else
        BoolAdd = False
    End If
End Sub

并在添加表单之前在用户表单中将BoolAdd设置为TRUE

Private Sub CommandButton1_Click()
    BoolAdd = True
    Sheets.Add
End Sub

逻辑:用户表单会将公共变量设置为True。这将确保不会运行工作表删除代码。此外,我们必须将其设置为false,否则用户将能够在关闭用户窗体后添加工作表。