EnterKey zum Drücken der Taste in der VBA-Benutzerform

7

Ich habe ein Benutzerformular in Excel, das nach einem Benutzernamen und einem Passwort fragt. Sobald Sie Ihr Passwort eingeben, wenn Sie Enter drücken, wird nur das nächste Element ausgewählt, das die Schaltfläche LogIn ist, aber es wird nicht gedrückt. Sie müssen Enter erneut drücken, um die Taste tatsächlich zu drücken.

Wie kann ich es so machen, wenn der Benutzer die Eingabetaste auf seiner Tastatur drückt, wird die LogIn-Taste gedrückt und der zugehörige Code läuft ( Logincode_click )?

    
user2385809 01.10.2013, 20:24
quelle

6 Antworten

9

Sie können auch den Ereignishandler On Key Press von TextBox verwenden:

%Vor%

Textfeld1 ist ein Beispiel. Stellen Sie sicher, dass Sie das Textfeld auswählen, auf das Sie verweisen möchten, und auch Logincode_Click ist ein Beispiel-Sub, das Sie mit diesem Code aufrufen (ausführen). Stellen Sie sicher, dass Sie sich auf Ihr bevorzugtes Sub

beziehen     
Jacob D 01.10.2013 21:56
quelle
6

Vermeiden Sie nach Möglichkeit "magische Zahlen", indem Sie entweder eigene Konstanten definieren oder die eingebauten vbXXX -Konstanten verwenden.

In diesem Fall könnten wir vbKeyReturn verwenden, um den Schlüsselcode des enter-Schlüssels anzugeben (ersetze YourInputControl und SubToBeCalled ).

%Vor%

Dies verhindert eine ganze Kategorie von Kompatibilitätsproblemen und einfachen Tippfehlern, besonders weil VBA die Kennungen für uns aktiviert.

Prost!

    
drognisep 29.06.2015 20:28
quelle
5

Dieser hat für mich funktioniert

%Vor%     
Pepys 09.09.2014 13:35
quelle
1

Verwenden Sie den Exit -Ereignishandler der TextBox:

%Vor%     
David Zemens 01.10.2013 21:11
quelle
0

Zusätzlich zu @ Penns Kommentar und für den Fall, dass die Verbindung unterbrochen wird, können Sie dies auch erreichen, indem Sie die Default -Eigenschaft der Schaltfläche auf True setzen (Sie können dies im Eigenschaftenfenster einstellen, indem Sie F4 )

Auf diese Weise weiß VBA, wann immer Return gedrückt wird, das click-Ereignis der Schaltfläche zu aktivieren. Wenn Sie die Cancel -Eigenschaft einer Schaltfläche auf True setzen, würde das click-Ereignis dieser Schaltfläche jedes Mal ausgeführt, wenn die ESC -Taste gedrückt wird (nützlich, um die Benutzerform ordnungsgemäß zu beenden)

Quelle: Olivier Jacot-Descombes 'Antwort hier zugänglich Ссылка

    
Greedo 22.03.2017 12:51
quelle
0

Hier können Sie einfach verwenden:

SendKeys "{ENTER}" am Ende des mit dem Feld Benutzername verknüpften Codes.

Und so können Sie die EINGABETASTE einmal (einmal) überspringen überspringen.
Und dadurch wird der nächste Button ("Log In" Button hier) aktiviert. Und wenn Sie einmal die EINGABETASTE drücken (das gewünschte Ergebnis), wird Code ausgeführt, der mit der Schaltfläche "Anmelden" verknüpft ist.

    
Sashidhar A 28.08.2017 08:35
quelle

Tags und Links