Cha*_*ase 1 excel vba excel-vba
使用:Excel 2010
我的代码的这部分一直在失败,我不知道为什么.当我尝试运行整个代码块时,它返回"运行时错误'1004':无法设置Range类的Locked属性".
'Lock/unlock issue
ThisWorkbook.Sheets("Dashboard").Activate
ActiveSheet.Unprotect Password:="my password"
Selection.Locked = False
Selection.FormulaHidden = False
If Range("D20").Value <> "Document Recorded" Then Range("F24").Locked = True Else Range("F24").Locked = False
ActiveSheet.Protect Password:="my password", DrawingObjects:=True, Contents:=True, Scenarios:=True
Run Code Online (Sandbox Code Playgroud)
基本上,我想说:如果单元格D20不等于"Document Recorded",则锁定单元格F24,否则解锁单元格F24.
虽然我测试了您的代码并且它按原样运行,但我建议您将代码重构为以下内容.
With ThisWorkbook.Sheets("Dashboard")
.Unprotect Password:="my password"
.Range("F24").Locked = .Range("D20").Value <> "Document Recorded"
.Protect Password:="my password", DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
Run Code Online (Sandbox Code Playgroud)
工作直接与对象和避免"选择"和"ActiveSheet /工作簿/单元"是最好的做法,如果使用的话会导致各种问题毫无防备.
归档时间: |
|
查看次数: |
71 次 |
最近记录: |