
这段代码是一个按钮,它应该保护另一个工作簿的所有工作表,它可以工作,但它没有保护他们的密码我不知道为什么。它可以检测到Pass,但由于某种原因,它并不能保护它。正如你在图像上看到的,它会检测密码,但不会将其应用于密码。
Private Sub CommandButton3_Click()
Dim wb As Excel.Workbook
Application.ScreenUpdating = False
Pass = Sheets("Pass").Range("C5").Value
If Sheets("Pass").Range("C5").Value <> "" Then
Set wb = Workbooks.Open("G:\SnP\L-3\Nómina\Nómina 1° Turno.xlsm")
With wb
For i = 1 To Sheets.Count
Sheets(i).Protect Password:=Pass, DrawingObjects:=True, Contents:=True, Scenarios:=True
Next i
Listop = MsgBox("Listo")
Application.ScreenUpdating = True
'wb.Close Savechanges:=True
End With
Exit Sub
Else
Err = MsgBox("Agregar Nueva o Vieja contraseña")
End If
End Sub我不知道这是否重要,但我也有下面的Unprotect,它工作得很好。
Private Sub CommandButton4_Click()
Dim wb As Excel.Workbook
Application.ScreenUpdating = False
Pass = Sheets("Pass").Range("C5").Value
If Sheets("Pass").Range("C5").Value <> "" Then
Set wb = Workbooks.Open("G:\SnP\L-3\Nómina\Nómina 1° Turno.xlsm")
With wb
For i = 1 To Sheets.Count
Sheets(i).Unprotect Pass
Next i
Listop = MsgBox("Listo")
Application.ScreenUpdating = True
End With
Exit Sub
Else
Err = MsgBox("Agregar Nueva o Vieja contraseña")
End If
End Sub发布于 2020-02-11 08:10:56
我怀疑你的"With wb“部分的作用域不正确。
在该节中有工作表的任何位置,都可以尝试使用.Sheets,以确定工作表属于哪个工作簿。
https://stackoverflow.com/questions/60160175
复制相似问题