VBA 无模式窗体停止功能键

VBA modeless form stops Function Keys

我想在我的 Excel 程序中有自己的帮助文件。

Private Sub Workbook_Open()

我有

Application.OnKey "{F1}", "Help"

当我在 Excel sheet 上时,这是有效的,但我的应用程序基于无模式显示的全屏主用户窗体。

当用户窗体可见时,它会以某种方式阻止 F1 键并且宏不会触发。

我认为无模式窗体不会阻止代码执行。

有什么提示可以让我完成这项工作吗?

您需要在用户窗体本身上捕获 keyDown 事件。当用户窗体获得焦点时,无论您按什么键,它都会转到用户窗体。

'/UserForm1 is a sample name.

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     If KeyCode = 112 Then '/ F1
        Call Help
     End If
End Sub