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

Posted

技术标签:

【中文标题】VBA 事件 - 如果选中,则解锁受保护工作表中的单元格【英文标题】:VBA event - Unlock cell in protected sheets if selected 【发布时间】:2015-02-04 14:37:58 【问题描述】:

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

否则,我尝试在运行受保护的宏后简单地解锁特定单元格,但它不起作用:

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

希望大家帮忙。

提前致谢!

【问题讨论】:

【参考方案1】:

你几乎得到了答案 只需提供解锁密码并确保工作表处于活动状态

   Activesheet.Unprotect MyPassword 

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于VBA 事件 - 如果选中,则解锁受保护工作表中的单元格的主要内容,如果未能解决你的问题,请参考以下文章

VBA 锁定有内容的单元格

VBA根据表的数据列表锁定/解锁每一行

如何使用VBA选中工作表中不带公式的单元格,谢谢

我需要在 Excel 文件中打开受密码保护的 VBA 项目 [重复]

如何在仍可以更改工作表中的值的情况下在vba excel中执行Do Event计时器?

vba日历控件只能在一个单元格用怎么办