2016-01-14 43 views
0

我正在尋找一種方法來防止用戶刪除用作日常報告模板的電子表格。用戶應該將電子表格的名稱更改爲今天的日期(即01-14),然後運行一個宏,該宏創建今日工作表的副本並將其重命名爲「新的一天」。我需要確保用戶不能刪除「新的一天」表,因爲它包含公式。我很喜歡MS Excel 2007.刪除工作表之前顯示消息框MS Excel

謝謝你的幫助,你可以提供!

+0

保護工作簿的結構[請參閱此鏈接](https://support.office.com/zh-cn/article/Password-protect-worksheet-or-workbook-elements-dbf706e0-ba22-4a08-84d8 -552db16eef11#bmprotectworkbookelements) – Fadi

回答

0

在原始工作表上嘗試Protect Sheet

轉到ReviewProtect Sheet。確保選中「保護工作表和鎖定單元格的內容」,如果您沒有輸入密碼,工作表將受到保護,但某些人可能會通過一些努力進行保護。如果你只是擔心他們意外刪除表單,這肯定會有所幫助。

+0

[保護表]不會阻止刪除工作表。我可以鎖定單元格並防止在工作表中進行編輯,但是我無法防止工作表本身的丟失。你是否知道任何事件驅動的方法來停止進程的方式與內置的警告消息相同。 – Andrew

0

今天早上在Excel 2010上這對我很好,只是在2007年測試它,讓我知道。

將以下內容粘貼到特定工作表模塊中。

Private Sub Worksheet_Activate() 
    ThisWorkbook.Protect "yourpassword" 
End Sub 

Private Sub Worksheet_Deactivate() 
    ThisWorkbook.Unprotect "yourpassword" 
End Sub 

這在Excel 2010中完美工作,允許我編輯和刪除單元格/行/列。

然後,當你想複製它時,你需要另外一張表來查看,因爲只要選擇了特定的表格,它將應用將移除選擇的密碼,以移動/複製/刪除。這也適用於複印紙。

Sub SomeSub() 

    Dim MySheet As Worksheet 

    Set MySheet = ThisWorkbook.Sheets("Sheet1") 

    'Due to the the Protection of the Sheet while it is active 
    'you then need to select another sheet 
    ThisWorkbook.Sheets("Sheet2").Select 

    'With the Sheet not being active you don't need to unprotect it 
    'because the password is not applied. 
    MySheet.Copy After:=Sheets(2) 

    'Note that the Copied Sheets will be protected with the 
    'same password used for the original sheet, and this Only applies with access through VBA. 

End Sub 

讓我知道是否有任何更多的解釋或如果它不工作。

+0

保護工作表並不妨礙刪除工作表,這對我來說似乎很奇怪,但我已經用幾種不同的方式對其進行了測試。每次我都可以刪除工作表,即使所有的單元格都被鎖定和無法選擇。 – Andrew

+0

@Andrew看看更新後的答案並試一試。只要您激活工作表,它就會保護它,同時允許編輯它。那麼當您想複製它時,您只需要取消保護該表,然後在完成複製時再次保護它。 –