VBA事件 – 如果选中,解锁受保护工作表中的单元格

我的单元格包含一个validation下拉列表,如何让我的VBA解锁它,如果我点击单元格?

否则,我试图简单地解锁特定单元格,一旦我运行受保护的macros,但它不起作用:

Sub ProtectAll() Dim sh As Worksheet Dim MyPassword As String MyPassword = "test" For Each sh In ActiveWorkbook.Worksheets sh.Protect Password:=MyPassword Next sh ThisWorkbook.Sheets("WACC1").Unprotect ThisWorkbook.Sheets("WACC1").Range("C4").Locked = False ThisWorkbook.Sheets("WACC1").Protect End Sub 

希望你们能帮忙。

提前致谢!

你几乎得到答案只是提供密码解锁,并确保工作表是活动的

  Activesheet.Unprotect MyPassword 

您可以使用userinterfaceonly选项来保护工作表,但允许对macros进行任何编程式更改。

ThisWorkbook.Sheets("WACC1").Protect Password:=MyPassword, UserInterfaceOnly:=True