2015-10-18 19 views
0

此代碼在從宏快捷鍵調用時正常工作,也就是說,它將預選單元格置於編輯模式。Application.SendKeys Keys:=「{F2}」不適用於窗體按鈕子例程

Sub EditActiveCell() 
Selection.Activate 
Application.SendKeys Keys:="{F2}" 
End Sub 

但是,從源自UserForm控件點擊的子例程調用時,它不起作用。點擊後,預先選擇的單元格是「惰性」,必須點擊才能輸入內容。它就像在VBA中選擇的那樣,但不在Excel客戶端中。

而且,如果我做的是從控制點擊稱爲像這樣簡單的程序:

Sub UserFormControlClickAction() 
ActiveCell.Select 
End Sub 

然後單擊控件子程序離開選擇(單個細胞)「惰性」;我必須點擊它才能進入它。

獲取F2設置從UserForm控件點擊一致工作的任何幫助?

回答

1

首先,確保userform是無模式的。在VBE中將窗體的ShowModal屬性設置爲False。

將用戶窗體的代碼模塊中下面的代碼:

Private Sub UserForm_Click() 
    Appactivate Thisworkbook.Name 
    EditActiveCell 
End Sub 

Sub EditActiveCell() 
    Selection.Activate 
    Application.SendKeys "{F2}", True 
End Sub 

運行用戶窗體,現在當你點擊的形式,在工作表上activecell將進入編輯模式。

當然,您可以使用控件的事件過程來代替,但我試圖儘可能保持簡單。

+0

感謝@PatrickLepelletier提示。 –

+0

效果不錯,謝謝 – wayfarer

+0

不客氣。 –