我可以使用 Excel 工作表的属性来判断工作表是否受保护(Worksheet.Protection、Worksheet.ProtectContents 等)。
如何使用 VBA 判断整个工作簿是否已受到保护?
我可以使用 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。我希望这就是你要找的。