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
)?
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
beziehenVermeiden 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!
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 Ссылка
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.