锁定表未按预期工作

时间:2016-07-13 04:54:48

标签: excel excel-vba vba

我想根据另一张纸中单元格的值锁定/解锁给定的纸张。 我在工作表更改工作表form中编写了以下代码:

Application.ScreenUpdating = False
Status = Sheets("form").Range("J2")
If Status = "Active" Then
    Sheets("overview").Unprotect "password"
    'MsgBox "The template is now unlocked"
Else
    Sheets("overview").Protect "password"
    'MsgBox "The template is locked"
End If
Application.ScreenUpdating = True

但是,当Status不是active时,我仍然可以更改overview中的某些单元格,获取“无法设置Range类的隐藏属性”弹出窗口。 错误在哪里?

1 个答案:

答案 0 :(得分:1)

Worksheet_Change 事件(在form工作表代码中)中尝试以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.ScreenUpdating = False

    Status = Me.Range("J2")
    If Status = "Active" Then
        Sheets("overview").Unprotect "password"
        'MsgBox "The template is now unlocked"
    Else
        Sheets("overview").Protect "password"
        'MsgBox "The template is locked"
    End If
    Application.ScreenUpdating = True


End Sub