Excel - 输入值时:错误而不是锁定的单元格

Excel - When enter a value: error instead of locked cell

当您输入一个值时,单元格应该被锁定。只有黄色单元格应该能够锁定。但总是当我在单元格中输入内容时,我得到这个错误代码:

代码中的错误:

完整代码:

    Private Sub Worksheet_Change(ByVal Target As Range)

Sheet1.Unprotect "1234"

If VBA.IsEmpty(Target.Value) Then

    Target.Locked = False

Else

    Target.Locked = True

End If

Sheet1.Protect "1234"

End Sub

table:

我怀疑您收到错误的原因是您没有名为 Sheet1 的 sheet。您可能在某个时候重命名或删除了第一个 sheet。

要从您可以使用 Range.Worksheet 的范围内动态调用作品sheet。这将为您提供您正在使用的范围的工作sheet。

以下是在您的场景中使用它的方法:

首先需要一些准备

  1. Select 所有单元格都在工作sheet
  2. 右键单击 --> 设置单元格格式
  3. 保护选项卡
  4. 取消选中锁定。 (这意味着 sheet 上没有单元格被锁定)

编辑单元格时,如果它是黄色的并且其中有值,它将被锁定。那么该作品sheet上的所有单元格都将被锁定,如果它们被设置为锁定的话。

Private Sub Worksheet_Change(ByVal Target As Range)
    ' Only deal with one Cell.
    If Target.Columns.Count = 1 And Target.Rows.Count = 1 Then
        'Target background is Yellow (You may have to modify the code to the RGB value of your yellow) and value is Empty
        If Target.Interior.Color = RGB(255, 255, 102) And Target.Value <> "" Then
            Target.Worksheet.Unprotect "1234"
            Target.Locked = True
            Target.Worksheet.Protect Password:="1234", Contents:=True
        End If
    End If
End Sub