Application.OnKey过程错误 – 无法运行macros

我正在使用onkey事件来检测是否按下退格或删除的模块,如果它符合事件的标准,相应的单元格将清除内容。

我有一个程序启动相应的子,但我得到一个错误'macros不能find'

我附上的错误和下面的代码的图像,有什么build议吗?

错误的形象 在这里输入图像说明

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If ActiveCell.Column = 2 Then Application.OnKey Key:="{DEL}", Procedure:="DeleteResources" Application.OnKey Key:="{BACKSPACE}", Procedure:="DeleteResources" End If End Sub Public Sub DeleteResources() ActiveCell.Offset(, 1).ClearContents ActiveCell.Offset(, 2).ClearContents ActiveCell.Offset(, 3).ClearContents End If End Sub 

您需要将DeleteResources放入代码Module以便它具有完整的公共范围,特别是在使用过程名称的后期绑定时。

此外,你需要删除多余的End If你有在该方法。

就像一个参考,因为你已经有一个工作的解决scheme,你不必移动的例程,你只需要在名称前加上它的容器模块的代码名称:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim sProc As String sProc = Me.CodeName & ".DeleteResources" If ActiveCell.Column = 2 Then Application.OnKey Key:="{DEL}", Procedure:=sProc Application.OnKey Key:="{BACKSPACE}", Procedure:=sProc End If End Sub Public Sub DeleteResources() ActiveCell.Offset(, 1).Resize(, 3).ClearContents End Sub