我的工作簿受密码保护,由用于输入的未锁定单元格和用于PDF打印的ane按钮组成。由于工作表的密码保护,PDF打印按钮不起作用。
我已经尝试了以下早期问题和解答。却说我输入的密码是错误的(!)
Macros don't work when sheet is protected. Running macro returns run-time error 1004
Sub ButtonClick()
UnprotectAll
'Some stuff here
ProtectAll
End Sub
Private Const yourPassword As String = "ThePassWord"
Sub UnprotectAll()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
sh.Unprotect Password:=yourPassword
Next sh
End Sub
Sub ProtectAll()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
sh.Protect Password:=yourPassword
Next sh
End Sub
我明白了
错误“ 1004”。
您提供的密码不正确。
答案 0 :(得分:0)
请确保您将Option Explicit
用作每个模块和工作表代码中的第一行!这样可以确保您不会遇到未声明的局部范围变量yourPassword
,该变量随后为空。
我建议始终激活Option Explicit
:在VBA编辑器中,转到工具› 选项› Require Variable Declaration
请确保您使用密码取消(手动)保护所有工作表。
在模块中将所需的新密码定义为常量
Private Const yourPassword As String = "ThePassWord"
将此常量用于您的.Protect
/ .Unprotect
sh.Protect Password:=yourPassword
然后再次运行您的代码。