gpt4 book ai didi

vba - 锁定/解锁单元格的 If-Then-Else 代码不断失败

转载 作者:行者123 更新时间:2023-12-04 21:12:29 34 4
gpt4 key购买 nike

使用: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

基本上,我想说:如果单元格 D20 不等于“记录的文档”,则锁定单元格 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

直接使用对象和 avoiding 'Select' and 'ActiveSheet/Workbook/Cell'是最佳实践,如果使用可能会导致各种意想不到的问题。

关于vba - 锁定/解锁单元格的 If-Then-Else 代码不断失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37929745/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com