如何判断Excel工作簿是否受保护

4

我可以使用Excel工作表的属性来判断工作表是否受到保护(例如Worksheet.Protection,Worksheet.ProtectContents等)。

如何使用VBA判断整个工作簿是否被保护?

2个回答

5

我自己找到了答案:

我需要使用Workbook.ProtectStructureWorkbook.ProtectWindows属性。


2

您需要使用每个工作表上的Worksheet.ProtectedContents,我将为您梳理一下:

因此,您可以像这样设置循环:

Public Function wbAllSheetsProtected(wbTarget As Workbook) As Boolean 

Dim ws As Worksheet 

wbAllSheetsProtected = True

For Each ws In wbTarget.Worksheets 
    If ws.ProtectContents = False Then 
        wbAllProtected = False
        Exit Function 
    End If 
Next ws 

End Function

如果每个工作表都受到保护,该函数将返回True,如果有任何未受保护的工作表,则返回False。我希望这就是您要寻找的内容。


1
谢谢,但这不是我要找的。所有的工作表都可以被保护,而无需保护工作簿。我需要保护工作簿,以防止用户取消隐藏的工作表。我已经找到了答案:Workbook.ProtectStructure和Workbook.ProtectWindows。 - Joe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接