我想根据另一张纸中单元格的值锁定/解锁给定的纸张。
我在工作表更改工作表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类的隐藏属性”弹出窗口。
错误在哪里?
答案 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