2013-11-23 87 views
4

有沒有辦法阻止人們手動插入工作表。我有一個表單根據用戶放入的信息自動創建工作表。我目前使用的代碼將阻止人們創建工作表,但它也會阻止我的表單創建工作表。這是我正在使用的。它在工作簿模塊中。禁用插入工作表

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

回答

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 

,並設置BoolAddTRUE在您的用戶窗體添加表之前。

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

邏輯:用戶窗體將公共變量設置爲True。這將確保表單刪除代碼不會運行。此外,我們必須將其設置爲false,否則用戶將能夠在用戶窗體關閉後添加工作表。

+0

工作就像一個魅力。謝謝西德! –

+0

+1優秀的答案。如果插入多張紙,則工作。 – brettdj