在单元格中禁用编辑而不保护工作表vba

我想禁用单元格编辑(直接键入单元格),但想通过代码更新该单元格,而不保护工作表

有人有什么主意吗?

在工作表的代码模块中:

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A1:A10"), Target) Is Nothing Then Application.EnableEvents = False Target.ClearContents '// Assuming you want to keep it blank Application.EnableEvents = True End If End Sub 

然后在你的代码中,只要你想改变一个值,就可以事先禁用事件:

 '// Will be deleted Range("A5").Value = "TEST" '// Will not be deleted Application.EnableEvents = False Range("A5").Value = "TEST AGAIN" Application.EnableEvents = True