我在personal.xlsb中创建了一些宏来测试其他Excel工具。宏应该测试打开的文档的VBAProject是否具有密码保护。
我在personal.xslb中创建了以下代码,无论是否为测试文档设置密码,该代码始终显示True。
Sub testVBAPasswort()
'1 = VB-Project protected
'0 = VB-Project not protected
If Application.ActiveWorkbook.VBProject.Protection = 1 Then
MsgBox "False"
Else
MsgBox "True"
End If
End Sub
尝试测试的元素VBProject
。我这样做Workbook.VBPRoject.VBComponents.Count
。然后,我使用一个错误处理程序进行测试Err.Number = 50289
,这意味着该工作簿受密码保护并且当前处于锁定状态。当然,一旦VBProject
解锁,它将不再引发该错误。
编辑:
您应该直接引用您要测试的工作簿,否则您可能正在测试personal.xlsb
自己。如果您需要能够动态测试工作簿,则只需添加
Dim w as Workbook
For each w in Application.Workbooks
If Not w.Name = "personal.xlsb" Then
If w.VBProject.Protection = 1 Then
MsgBox w.Name & " Password Protected"
Else
MsgBox w.Name & " Not Password Protected"
End If
End If
Next w
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句