我正在尝试创建一个 Excel VBA 宏,该宏将检测一次是否更改了多个单元格。如果一个人只是删除单元格,我也希望它忽略代码。
这适用于检查是否有多个单元格被更改,并将阻止更改:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Cells.Count > 1 Then
MsgBox "Change only one cell at a time", , "Too Many Changes!"
Application.Undo
End If
Application.EnableEvents = True
End Sub
我试图弄清楚如何获取它,以便在删除单元格的内容时忽略它。我已经尝试了许多使用KeyAscii
, Chr
,ClearContents
和其他一些东西的组合。我似乎无法让它工作。下面是我尝试的最后一件事。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Cells.Count > 1 Then
If KeyAscii <> vbKeyDelete Then
MsgBox "Change only one cell at a time", , "Too Many Changes!"
Application.Undo
End If
End If
Application.EnableEvents = True
End Sub
如果有人有任何建议,请告诉我。