我正在使用跟踪器测试新的更改,以及何时。如果新的更改是N / A,我不想删除它,我想禁用(并变为灰色)可用于选择完成日期的所有单元格。但只是在那一排。我尝试使用以下方法,但没有任何运气:
这是我的代码:
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属性”。
提前致谢!
答案 0 :(得分:0)
嗯, Community 一直坚持(好几天)我看着这个问题,无情地将它推到我的“相关”队列的顶端,可能是因为它被标记为{ {3}}前4个标签, 和 它在技术上没有答案。
所以,抱歉my,我正在刷你的“评论答案”:
保护,
执行Worksheet.Unprotect
,
之后运行您的代码(和Worksheet.Protect
)。
Microsoft:Moacir(Excel)
Microsoft:Worksheet.Protect Method(Excel)