2017-06-19 51 views

回答

5
Public Sub TestMe() 

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

End Sub 

Public Sub UnTestMe() 

    Application.OnKey "{F1}" 

End Sub 


Public Sub RunMe() 

    Debug.Print Now 

End Sub 

如果運行TestMe,將分配F1到RunMe。要取消分配,請運行UnTestMe。在一般情況下,您可以考慮使用F1按CtrlAlt鍵這樣的:

Application.OnKey "^{F1}", "F1_CtrlMacro" 
Application.OnKey "%{F1}", "F1_AltMacro" 
Application.OnKey "+{F1}", "F1_ShiftMacro" 
Application.OnKey "{F1}", "F1_OnlyMacro" 

編輯:

爲了從一開始就分配給它,添加以下在ThisWorkbookenter image description here

Option Explicit 

Private Sub Workbook_Open() 

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

End Sub 
+0

有沒有辦法分配給它,而無需運行宏?只要打開Excel,它從一開始就在F1下。 – NoOne

+1

@NoOne - 請參閱編輯。 – Vityata

+0

好的一點是,正如我剛剛測試的那樣,這是會話特定的,不需要在'Workbook_BeforeClose'中將其刪除:)。你確認嗎? –

2

停用當前的按鍵設置爲F1

使用下面的VBA代碼

Sub disableF1() 
Application.OnKey "{F1}", "" 
End Sub 

然後將其分配給您的

Public Sub RunMyMacro() 

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

End Sub 

這裏的宏是一個例子您希望它運行的宏:

Public Sub RunMyCode 

    MsgBox "This is my macro to run!" 

End Sub 

有一個愉快的一天

問候丹尼爾