在excel工作簿中,我有超过20张。但是,有些已受密码保护,允许用户只能访问可以更改值的特定单元格。有些纸张没有受到保护。我有以下代码来检查工作表是否不受保护。
Sub Check_if_Unprotected()
If ActiveSheet.ProtectContents = True Then
MsgBox "Protected"
Else
MsgBox "Not protected"
End If
End Sub
然而,在一天结束时运行上述宏20次是费力的。我希望宏创建一个名为"不受保护的"并使用未受保护的工作表列表填充工作表。 非常感谢任何帮助。
答案 0 :(得分: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