Die Wurzel des Problems:VBA - Application.OnKey nicht zurückgesetzt Zulassen
Wenn ich den Code speichern ...
Application.OnKey "~", "SomeSub"
innerhalb von einer Methode Arbeitsblatt, es funktioniert. wenn ich jedoch zurückgesetzt Application.OnKey
zunächst den Code verursacht aussehen ...
Application.OnKey "~"
Application.OnKey "~", "SomeSub"
es nicht mehr ermöglicht es dem Benutzer SomeSub
mit dem Enter
Schlüssel
Situation auszuführen:
Ich habe ein Programm, das mit einer Benutzeranmeldung beginnt. Anstatt dass der Benutzer auf eine Schaltfläche klicken muss, nachdem der Benutzername eingegeben wurde, möchte ich die Bedeutung des Enter
Schlüssels zurücksetzen, um einfach den "SignIn" Sub auszuführen. Gleiches mit dem nächsten Blatt: nachdem sie die erforderlichen Informationen eingeben, möchte ich den Enter
Schlüssel, um die nächste Sub laufen lassen. Daher weise ich die Bedeutung der Eingabetaste neu zu. Problem ist, nachdem ich die Bedeutung dieser Zeit gelöscht habe, Einstellung ...
Application.OnKey "~", "SomeSub"
funktioniert nicht mehr.
Was mache ich falsch?
EDIT: Ich habe seit meinem Problem mit einem Workaround gelöst, indem Sie das Worksheet_Change
Ereignis verwenden. Aber ich bin immer noch neugierig darauf, warum Application.OnKey
scheint nur einmal zu funktionieren
Application.OnKey "~", "" –
Bitte überdenken diese. Diese Art von Nicht-Standard-Verhalten (inkonsistent mit Windows-Anwendungen, die Benutzer verwenden) wird wahrscheinlich Benutzer zuerst verwirren und dann frustrieren. Benutzer müssen nicht auf die Schaltfläche klicken, sie können den Fokus auf die Schaltfläche legen und die Eingabetaste drücken. Es ist fast immer besser, sich an UI-Konventionen der Plattform zu halten. – MikeC
Da sich die Benutzer auf einem Tablet befinden, haben sie keinen Zugriff auf die Eingabetaste. Der Schlüssel wird tatsächlich von einem Barcodescanner "gedrückt", der am Ende jedes Strichcodes eine Rückkehr programmiert hat. Dies wird so sein, dass der Benutzer einfach den Code scannen und weitermachen muss, anstatt den Befehl manuell zu aktivieren. – corbfon