2016-01-04 54 views
1

我已經實現了2個不同級別的授權訪問ThisWorkbook。級別1只允許用戶修改特定的可見工作表,並且不授權他/她執行其他任何操作,包括添加新的工作表。 (第2級用戶可以查看所有內容並對工作簿執行任何操作)。Workbook_NewSheet(Byval Sh as Object)

我的問題是如何防止1級用戶試圖創建一個新工作表。我正嘗試使用「Workbook_NewSheet」事件處理此事件,立即在創建該表時立即刪除此表。然而,參數「Sh」是通過值傳遞的,並且作爲「對象」而不是「工作表」。我不能修改(或刪除)這個「Byval」對象。

任何人有任何建議嗎?

感謝,

回答

1

你可以參考Sh像下面。下面的代碼關閉警報,刪除新創建的工作表,然後重新打開警報。

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

+0

謝謝,它的工作原理。你能否解釋爲什麼這個「Byval」變量「Sh」被修改,即使它沒有通過「Byref」? – user5700405

+0

這可能有助於解釋:http://www.excel-easy.com/vba/examples/byref-byval.html –