我正在使用跟踪器来测试新的更改,以及何时。如果新更改不适用,我不想删除它,我想禁用(并变为灰色)所有可用于选择完成日期的单元格。但只在那一排。我尝试过使用以下方法,但没有任何运气:
这是我的代码:
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
两个消息框均显示,但单元格未锁定。所以我尝试解锁所有单元格,然后保护工作表。然后我将某些内容设置为“N/A”并得到错误“无法设置 Range 类的 Locked 属性”。
这是我的数据的样子:
提前致谢!
最佳答案
好吧,Community一直坚持(好几天)我看这个问题,无情地将它推到我的“相关”队列的顶部,可能是因为它被标记为 my前 4 个标签,和 从技术上讲,它没有答案。
所以,对不起Moacir ,我正在刷你的“评论答案”:
Worksheet.Unprotect
, Worksheet.Protect
)。 更多信息:
关于vba - 可以根据另一个单元格的值锁定单元格范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45987196/