Dim Flag As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If Flag = True Then
Flag = False
Exit Sub
End If
If Target.Row >= 1 And Target.Row <= 8 And Target.Column >= 1 And Target.Column <= 6 Then
MsgBox "禁止更改"
SendKeys "^z"
Flag = True
End If
End Sub
'改了一下,刚测试,第一次不能改,第二次能改,所以将上面的代码调整了一下。
'Change事件,不太好搞,因为更改后触发事件,改回来也要触发事件,汗
追问谢谢你的回答,通过撤销操作的确可以把单元格的值复原,但却响应了两次change事件,请问可不可以在该事件中屏蔽掉所有的键盘输入(同时还要屏蔽掉鼠标的双击响应)以达到不可更改的目的呢?
追答屏蔽掉所有的键盘输入(同时还要屏蔽掉鼠标的双击响应),这样需要用Hook全局钩子,较麻烦并且易发生意外。我刚改了后的代码应该解决了这个问题,请测试一下。
本回答被提问者采纳