表格保护解锁VBA

时间:2015-02-17 10:32:42

标签: excel vba excel-vba password-protection

我正在尝试使用密码保存工作表,但我无法使用相同的密码解锁,有人可以帮我解决这个问题。

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 test()
ActiveSheet.Protect Password:="Kiran123"
ActiveSheet.Unprotect Password:="Kiran123"
End Sub

3 个答案:

答案 0 :(得分:1)

这个子对我有用:

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

这个工作的原因,而你的子没有,是我在我分配一个named argument,而我认为你的子行中的线试图设置等于等于等于什么的等号之后,这是:==之间的差异。老实说,我对你的子跑一点感到有点惊讶,它肯定不适合我。

答案 1 :(得分:1)

您正在使用

将焦点从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

答案 2 :(得分:0)

ActiveSheet可能不是"过滤器"标签...

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

或切换上面发布的代码中的第二行和第三行:)