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

时间:2014-06-24 10:42:00

标签: excel vba excel-vba

我正在尝试使用Application.OnKey在按下Enter时启动一个函数,它工作得很好。但问题是,如果我打开其他电子表格,它也适用于这些。我应该在哪里放置代码,使其仅适用于预期的电子表格?

这是我在" ThisWorkbook":

中的代码
Private Sub Workbook_Open()
    Application.OnKey "~", "Set_Hyper"
    Application.OnKey "{ENTER}", "Set_Hyper"
End Sub

1 个答案:

答案 0 :(得分:5)

绕道而行:

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

您需要将第一个宏更改为Private Sub Workbook_Activate()而不是Private Sub Workbook_Open()才能使上述内容正常工作