为excel宏分配功能键

Tro*_*une 3 excel vba

我已经看到以下示例代码建议将功能键分配给 excel 宏,但无论我在哪里尝试复制代码(模块、工作簿、工作表),总的来说,始终执行原始分配的功能键任务而不是尝试/分配的宏。此代码是否需要某种类型的高级代码来首先禁用功能键的原始分配任务?

Sub A_1()
  Call sndPlaySound32(ThisWorkbook.Path & "\a1.wav", 0)
End Sub

Sub B_1()
  Call sndPlaySound32(ThisWorkbook.Path & "\b1.wav", 0)
End Sub

Sub C_1()
  Call sndPlaySound32(ThisWorkbook.Path & "\c1.wav", 0)
End Sub

Sub D_1()
  Call sndPlaySound32(ThisWorkbook.Path & "\d1.wav", 0)
End Sub

Sub E_1()
  Call sndPlaySound32(ThisWorkbook.Path & "\e1.wav", 0)
End Sub


Sub auto_open()
  Application.OnKey "{F1}", "A_1"
  Application.OnKey "{F2}", "B_1"
  Application.OnKey "{F3}", "C_1"
  Application.OnKey "{F4}", "D_1"
  Application.OnKey "{F5}", "E_1"
End Sub
Run Code Online (Sandbox Code Playgroud)

Gar*_*ent 5

将其放在工作簿代码区域中

Private Sub Workbook_Open()
    Application.OnKey "{F1}", "A_1"
    Application.OnKey "{F2}", "B_1"
    Application.OnKey "{F3}", "C_1"
    Application.OnKey "{F4}", "D_1"
    Application.OnKey "{F5}", "E_1"
End Sub
Run Code Online (Sandbox Code Playgroud)

将您的其他潜艇放在标准模块中

OnKey 分配将在工作簿打开时发生。要恢复正常的功能键行为,请运行:

Sub reset()
    Application.OnKey "{F1}"
    Application.OnKey "{F2}"
    Application.OnKey "{F3}"
    Application.OnKey "{F4}"
    Application.OnKey "{F5}"
End Sub
Run Code Online (Sandbox Code Playgroud)