Excel 保护其他工作簿时未应用密码
这个代码是一个按钮,它应该保护其他工作簿的所有工作表,它可以工作,但它不能用密码保护它们,我不知道为什么。它检测Excel 保护其他工作簿时未应用密码,excel,vba,Excel,Vba,这个代码是一个按钮,它应该保护其他工作簿的所有工作表,它可以工作,但它不能用密码保护它们,我不知道为什么。它检测通过,但由于某种原因,它无法保护它。正如您在图像上看到的,它检测到密码,但不应用它 Private Sub CommandButton3_Click() Dim wb As Excel.Workbook Application.ScreenUpdating = False Pass = Sheets("Pass").Range("C5").Value If Sheets("Pa
通过
,但由于某种原因,它无法保护它。正如您在图像上看到的,它检测到密码,但不应用它
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
我怀疑你的“带wb”部分的范围不正确
请在该部分中有工作表的地方尝试使用.Sheets,以澄清这些工作表属于哪个工作簿。对我很有用。Password:=Pass应该是Password:=“Pass”,但这只会导致我这边出现不保护的问题。Pass是工作表上的一个值,这就是为什么
Pass=Sheets(“Pass”)。范围(“C5”)。value
我刚刚尝试验证Sheets(i)。保护密码:=“Pass”
不起作用。这是一个范围问题,我将在回答中给出更详细的信息当您运行“保护”代码时工作簿是否总是关闭?必须关闭,因为工作簿。打开打开它并重写它。“Nómina 1°Turno.xlsm”工作簿中的所有工作表都受到保护,但没有密码。好的,这解决了第一个问题。当用字符串替换命名区域时,它是否有效?哦,我没有更改任何内容,它一直都是这样工作的,并且没有:(字符串的暗淡过程
不起作用。然后我被卡住了。在我的pc上使用相同的代码可以正常工作,唯一的更改是文件路径和工作表->工作表
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