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

如果整个工作簿受到保护,如何判断使用VBA?

有帮助吗?

解决方案

自己找到答案:

我需要 Workbook.ProtectStructure Workbook.ProtectWindows 属性。

其他提示

您需要在每个工作表上使用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。我希望这就是你要找的东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top