Workbook_NewSheet(Byval Sh as Object)

时间:2016-01-04 04:02:11

标签: excel excel-vba vba

我已对ThisWorkbook实施了2个不同级别的授权访问权限。级别1仅允许用户修改特定的可见工作表,并且不授权他/她执行任何其他操作,包括添加新工作表。 (并且级别2用户可以查看所有内容并对工作簿执行任何操作)。

我的问题是如何阻止1级用户尝试创建新工作表。我正在尝试使用“Workbook_NewSheet”事件来处理此事件,方法是在创建时立即删除此工作表。但是,参数“Sh”按值传递,并作为“对象”传递,而不是“工作表”。我无法修改(或删除)此“Byval”对象。

有人有什么建议吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

您可以参考下面的Sh。下面的代码会关闭警报,删除新创建的工作表,然后重新打开警报。

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

答案 1 :(得分:1)

您可以通过使用密码

保护工作簿来实现

保护工作簿的结构将阻止用户插入新的工作表或图表。 Password protect worksheet or workbook elements