可能locking基于另一个单元格的值的单元格区域?

我正在使用跟踪器来testing新的更改,以及何时。 如果新的更改是不适用的,我不想删除它,我想要禁用(并变灰)所有可用的单元格来select它的完成date。 但只在那一行。 我试过使用下面的方法,但没有运气与任何:

  1. 工作表中的条件格式
  2. 在进行更改时执行的VBA代码
  3. 数据validation(认为这是可能的,但不熟悉这是如何工作的)

这里是我有的代码:

Private Sub worksheet_change(ByVal Target As Range) Dim keycells As Range Set keycells = Range("G:G") lastcol = CInt(Sheet1.Cells(1,Sheet1.Columns.Count).End(xlToLeft).Column) If Not Application.Intersect(keycells, Range(Target.Address)) Is Nothing Then r = Range(Target.Address).Row MsgBox "There was a change" If Range(Target.Address).Value = "N/A" Then MsgBox "we got this far" Range("H" & r & ":" & Cells(r, lastcol).Address).Locked = True End If End If End Sub 

两个消息框显示,但单元格不locking。 所以我试图解锁所有单元格,然后保护表单。 然后我设置“N / A”,并得到错误“无法设置范围类的locking属性”。

这里是我的数据看起来像一个想法: 在这里输入图像说明

提前致谢!