Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 禁用插入工作表_Excel_Excel 2007_Vba - Fatal编程技术网

Excel 禁用插入工作表

Excel 禁用插入工作表,excel,excel-2007,vba,Excel,Excel 2007,Vba,有没有办法防止人们手动插入工作表。我有一个表单,可以根据用户输入的信息自动创建工作表。我当前使用的代码将阻止人们创建工作表,但也会阻止我的表单创建工作表。这是我正在使用的。它位于工作簿模块中 Private Sub Workbook_NewSheet(ByVal Sh As Object) Application.DisplayAlerts = False Sh.Delete Application.DisplayAlerts = True End Sub 在模块中声明

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

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

在模块中声明此项

Public BoolAdd As Boolean
这在您的
工作簿\u新闻单中

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,否则用户将能够在用户窗体关闭后添加工作表。

工作非常顺利。谢谢你,西德+回答得很好。如果插入多张图纸,也可以使用。