Das einschränken der Benutzer seine Eingabe aus Ganzzahlen auf einer Userform-Textbox
Ich habe eine textbox auf einer userform, die ich versuche zu beschränken, Benutzereingaben zu erlauben nur integer-Werte. Ich bin in der Lage, dies zu tun, aber das Verhalten ist ein wenig seltsam. Zuerst, hier ist mein code:
Private Sub txtAnswer_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If (KeyAscii >= 48) And (KeyAscii <= 57) Then
Me.txtAnswer.SetFocus
Else
KeyAscii = 0
Me.txtAnswer.SetFocus
End If
End Sub
Das problem ist, dass, nachdem der Benutzer eingegeben hat, ein Wert, der Fokus scheint zu gehen Weg von der textbox. Weitere, wenn der Benutzer nicht geben Sie einen integer-Wert, dieser Wert wird aus dem Textfeld gelöscht (d.h. die Eingabe wird "gegessen"). Die SetFocus-Linien sind mein Versuch, die Kontrolle korrekt Verhalten, aber Sie scheinen keine Wirkung haben.
Alles was ich tun möchte, ist sicherzustellen, dass nicht der Benutzer etwas eintragen wie "r" (oder jede andere nicht-integer-Wert) in das Textfeld ein. Ein beliebiger integer-Wert >= 0 ist durchaus akzeptabel (einschließlich mehrerer stellige Werte wie 10 oder 1000000).
Kann jemand sehen, warum mein Ansatz nicht funktioniert? Ich habe versucht ein paar verschiedene Ansätze und gesucht haben, um ganz ein bisschen, aber ich kann nicht etwas finden, die funktioniert.
Danke
InformationsquelleAutor Alex | 2012-06-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nehmen es einen Schritt Voraus!
Dank Randy :). Ich habe gerade eine zusätzliche Funktionalität als auch.
Vielen Dank für Ihre Lösung. Ich habe es versucht. Es funktioniert, außer ich kann noch hinzufügen den Punkt (dezimal -) symbol
Vielen Dank für das feedback. Ich habe aktualisiert, der code oben. Probieren Sie es jetzt 🙂
Vielen Dank für diese. Für alle, die zufällig auf diese später, wenn Sie erlauben wollen, decimal (double) müssen Sie erlauben
vbKeyDelete
stattvbKeyDecimal
wie in den vorherigen editieren.InformationsquelleAutor Siddharth Rout
Können Sie auch reguläre Ausdrücke verwenden.
Den Vorteil, wenn Sie brauchen, um zu überprüfen, für mehr komplizierte string-Kombinationen, beispielsweise für die negativen ganzen zahlen wie folgt:
oder für ein weiteres Beispiel keine führende null:
InformationsquelleAutor Reafidy