【发布时间】:2016-07-22 13:08:38
【问题描述】:
我想根据用户名保护工作簿中的所有工作表,因此将保护工作簿不被外部使用,而在内部我们可以轻松使用。但是,代码总是声明 If ws.Protect = True Then 行是假的,即使我知道工作表受到保护...
Private Sub Workbook_Open()
Dim strUser, Num, myCount, ws
strUser = CreateObject("WScript.Network").UserName
strUser = LCase(strUser)
Num = CLng(Right(strUser, 6))
If Left(strUser, 1) = "D" And Len(strUser) = 11 And IsNumeric(Num) Then
For Each ws In ActiveWorkbook.Worksheets
If ws.Protect = True Then
ws.Unprotect "password"
Else
ws.Protect "password", DrawingObjects:=True, Contents:=True, _
AllowSorting:=True, AllowFiltering:=True
End If
Next ws
End If
End Sub
任何帮助将不胜感激!
【问题讨论】: