Sheet保护解锁VBA

Sheet protection unlocking VBA

我正在尝试用密码保存 sheet,但我无法用相同的密码解锁它,有人可以帮我解决这个问题吗?

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 中尝试它时,它会起作用,为什么这两个代码中都存在这种歧义。发生这种情况的任何具体原因?如果我能得到一个用密码锁定 sheet 的代码,那就太好了。

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

这个子对我有用:

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

这行得通而你的子行不通的原因是,在我的中我分配了一个 named argument 而我认为你的子行试图设置等号之前的内容等于后面的,就是:==的区别。老实说,我有点惊讶你的子 运行,它对我来说肯定不是 运行。

ActiveSheet 可能不是 "Filter" 选项卡...

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

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

您正在使用

将焦点从 ActiveSheet 转移开
Sheets("Filter").Select

相反,您可以保留对原始传播的引用sheet,然后使用该引用进行密码 sheet 解除保护和保护...

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