Excel 工作簿\新闻纸(Byval Sh作为对象)

Excel 工作簿\新闻纸(Byval Sh作为对象),excel,vba,Excel,Vba,我已对该工作簿实施了两种不同级别的授权访问。级别1仅允许用户修改特定的可见工作表,不授权用户执行任何其他操作,包括添加新工作表。(2级用户可以查看工作簿的所有内容,也可以对工作簿执行任何操作) 我的问题是如何防止级别1用户尝试创建新工作表。我试图使用“工作簿\新闻纸”事件处理此事件,方法是在创建此工作表时立即删除它。但是,参数“Sh”是按值传递的,并且作为“对象”,而不是“工作表”。我无法修改(或删除)此“Byval”对象 有人有什么建议吗 谢谢,您可以参考下面的Sh。下面的代码关闭警报,删除新

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

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

有人有什么建议吗


谢谢,

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

Private子工作簿\u新闻纸(ByVal Sh作为对象)
Application.DisplayAlerts=False
Sh.删除
Application.DisplayAlerts=True

结束子项

您可以通过使用密码保护工作簿来完成此操作

保护工作簿的结构将防止用户插入新的工作表或图表。

谢谢,它很管用。你能解释一下为什么这个“Byval”变量“Sh”被修改,即使它没有传递“Byref”?谢谢,这很好。我将尝试实现这一点。