2016-04-07 44 views
0

根:VBA - Application.OnKey不允許重置問題

當我存儲代碼...

Application.OnKey "~", "SomeSub" 

工作表的方法裏面,它的工作原理。不過,如果我重新Application.OnKey第一,導致代碼看起來像......

Application.OnKey "~" 
Application.OnKey "~", "SomeSub" 

它不再允許用戶使用Enter關鍵

態勢運行SomeSub

我有一個以用戶登錄開始的程序。輸入用戶名後,用戶不必點擊按鈕,我想重置Enter鍵的含義以簡單地運行「SignIn」子項。與下一張相同:在輸入所需信息後,我想要Enter鍵運行下一步分。因此,我重新分配了Enter鍵的含義。問題是,在我明確了時間的意義之後,設定...

Application.OnKey "~", "SomeSub" 

不再有效。

我在做什麼錯?

編輯:我已經通過使用Worksheet_Change事件解決了我的問題與變通方法。但是,我仍然好奇爲什麼Application.OnKey似乎只能工作一次

+0

Application.OnKey 「〜」, 「」 –

+0

請重新考慮這一點。這種非標準行爲(與人們使用的Windows應用程序不一致)很可能首先讓用戶感到困惑,然後讓用戶感到沮喪。用戶不需要點擊按鈕,他們可以列出焦點到按鈕並按下回車鍵。它幾乎**總是更好地堅持平臺的UI慣例。 – MikeC

+0

由於用戶將在平板電腦上,他們將無法訪問「輸入」鍵。鑰匙實際上是由一個條形碼掃描器「推動」的,條形碼掃描器在每個條形碼的末尾都有一個返回編程。這將使用戶只需掃描代碼並繼續前進,而不是手動激活該命令。 – corbfon

回答

0

轉到您的「登錄」-Button的屬性,並將屬性默認爲true。

如果您現在使用Enter,則觸發button_click事件。

或使用形式的代碼初始化事件

CommandButton1.Default = True 
+0

不幸的是,由於我的程序經常創建和銷燬按鈕,我使用的是窗體控件而不是ActiveX – corbfon

+0

我也在討論窗體控件 – INOPIAE