2015-08-21 77 views
-1

在Excel工作簿中,我有20多張工作表。但是,有些已經被密碼保護,只允許用戶訪問特定的單元格,以便更改值。部分牀單不受保護。我有以下代碼來檢查工作表是否未受保護。在新工作表中列出未受保護的工作表

Sub Check_if_Unprotected() 
If ActiveSheet.ProtectContents = True Then 
MsgBox "Protected" 
Else 
MsgBox "Not protected" 
End If 
End Sub 

但是,要在一天結束時運行上述宏20次以上是很費力的。我想讓宏創建一個名爲「不受保護」的工作表,並使用不受保護的工作表列表填充工作表。 任何援助將不勝感激。

+0

SO不是用於請求代碼,還有其他網站。除此之外,同一張紙始終受到保護?如果是這樣,那麼它會比較容易,例如在工作表名稱末尾加上一個(P)來定義它的保護? – DragonSamu

回答

0

試試這個... 宏創建工作表並記錄所有未受保護的工作表名稱。

Dim ws As Worksheet, a As Range 
ActiveWorkbook.Worksheets.Add.Name = "Unprotected" 

For Each ws In ActiveWorkbook.Worksheets 
    If ws.ProtectContents = False And ws.Name <> "Unprotected" Then 
     CNT = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row 
     Sheets("Unprotected").Cells(CNT + 1, "A") = ws.Name 
    End If 
Next 
+0

Perfect Sy Chen,非常感謝。 – Baber62

相關問題