表保护解锁VBA

我试图用密码保存工作表,但我不能用相同的密码解锁它,有人可以帮我解决这个问题。

Sub ClearData() ActiveSheet.Unprotect Password = "Kiran123" Sheets("Filter").Select Range("A11").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Clear Sheets("Filter").Select Range("C3").Select Selection.Clear ActiveSheet.Protect Password = "Kiran123" End Sub 

感谢您检查这一点,但是当我已经尝试使用上面的代码(我的代码)不起作用。 但是,当你只用下面的sub试一下它的工作原理时,为什么这样的代码中含糊不清。 这是为什么发生的具体原因? 如果我可以得到一个代码来locking工作表的密码将是很好的。

 Sub test() ActiveSheet.Protect Password:="Kiran123" ActiveSheet.Unprotect Password:="Kiran123" End Sub 

通过使用,您可以从ActiveSheet切换焦点

 Sheets("Filter").Select 

相反,您可以保留对原始电子表格的参考,然后使用您的密码表去保护和保护的参考…

 Sub ClearData() Dim ws As Worksheet Dim pw As String Set ws = ActiveSheet pw = "Kiran123" ws.Unprotect (pw) Sheets("Filter").Select Range("A11").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Clear Range("C3").Select Selection.Clear ws.Protect (pw) End Sub 

这个分部为我工作:

 Sub test() ActiveSheet.Protect Password:="Kiran123" ActiveSheet.Unprotect Password:="Kiran123" End Sub 

这个原理是有效的,而你的子集没有,是我在我的分配一个命名的参数,而我认为你的子线中的行试图设置之前的等号等于后来,这是区别:== 。 老实说,我有点惊讶你的子跑,它肯定没有为我跑。

ActiveSheet可能不是“筛选器”选项卡…

 Worksheets("Filter").Unprotect Password = "Kiran123" 

或者切换第二行和第三行你上面贴的代码:)