Vba Application.OnKey仅适用于一个电子表格

Vba Application.OnKey仅适用于一个电子表格,vba,excel,Vba,Excel,我正在尝试使用Application.OnKey在按下Enter键时启动一个函数,它工作正常。但问题是,如果我打开了其他电子表格,它也会应用于这些。我应该把代码放在哪里,以便它只适用于预期的电子表格 这是我在“ThisWorkbook”中看到的代码: 这里有一个解决方法: Private Sub Workbook_Open() Application.OnKey "~", "Call_Hyper" Application.OnKey "{ENTER}", "Call_Hyper"

我正在尝试使用Application.OnKey在按下Enter键时启动一个函数,它工作正常。但问题是,如果我打开了其他电子表格,它也会应用于这些。我应该把代码放在哪里,以便它只适用于预期的电子表格

这是我在“ThisWorkbook”中看到的代码:

这里有一个解决方法:

Private Sub Workbook_Open()
    Application.OnKey "~", "Call_Hyper"
    Application.OnKey "{ENTER}", "Call_Hyper"
End Sub
在模块中,放置以下内容:

Sub Call_Hyper
If Activeworkbook.Name = "NAME OF YOUR WORKBOOK" Then
Call Set_Hyper
Else
Exit Sub
End If

End Sub
如果另一个工作簿需要相同的快捷方式,则这两个快捷方式将导致问题,因此在切换工作簿时,您也可以使用以下快捷方式将其停用:

Private Sub Workbook_DeActivate()
    Application.OnKey "~"
    Application.OnKey "{ENTER}"
End Sub
您需要将第一个宏更改为
专用子工作簿\u Activate()
,而不是
专用子工作簿\u Open()
,以上操作才能正常工作

Private Sub Workbook_DeActivate()
    Application.OnKey "~"
    Application.OnKey "{ENTER}"
End Sub