锁定某个范围内的某些单元格

Rya*_*n E 3 excel vba excel-vba excel-2010

我正在尝试循环一系列单元格,锁定任何具有内容的单元格,同时保持空单元格未锁定.

当我运行以下代码时,结果是整个工作表被锁定.如果我添加一个else语句,表单将被解锁.基本上无论最后一个.locked =(true,false)语句是整个工作表如何结束.

更改1 我是否有可能因为我是唯一一个无法使用此功能而开启/关闭的设置?

Sub ProtectTheSheet()
Dim chCell As Range
Dim chRng As Range

'Clear the default status
ActiveSheet.Unprotect
Range("A7:I35").Locked = False

Set chRng = ActiveSheet.Range("A7:I35")

'Check cell value in body and lock cells with content
For Each chCell In chRng.Cells
    If chCell.Value <> "" Then Cells.Locked = True
Next chCell

ActiveSheet.Protect

End Sub
Run Code Online (Sandbox Code Playgroud)

Tim*_*ams 5

Sub ProtectTheSheet()
    Dim chCell As Range
    Dim chRng As Range

    ActiveSheet.Unprotect
    Set chRng = ActiveSheet.Range("A7:I35")

    'Check cell value in body and lock cells with content
    For Each chCell In chRng.Cells
        chCell.Locked = (chCell.Value <> "")
    Next chCell

    ActiveSheet.Protect

End Sub
Run Code Online (Sandbox Code Playgroud)