Excel VBA - 检查工作表是否受密码保护

时间:2016-11-29 19:24:34

标签: excel-vba worksheet vba excel

我们可以使用ProtectContents属性检查工作表是否受到保护。但是如何检查它是否受密码保护?

if ws.ProtectContents then
    ''do something
end if 

1 个答案:

答案 0 :(得分:7)

我不相信通过财产可以直接做到这一点。但是,您可以尝试使用空密码取消保护工作表,并在失败时捕获错误:

Function isSheetProtectedWithPassword(ws As Worksheet) As Boolean
    If ws.ProtectContents Then
        On Error GoTo errorLabel
        ws.Unprotect ""
        ws.Protect
    End If
errorLabel:
    If Err.Number = 1004 Then isSheetProtectedWithPassword = True
End Function

你可以这样称呼:

isSheetProtectedWithPassword(Worksheets("Sheet1"))

它会返回TrueFalse