2012-06-20 13 views
6

Gibt es eine eingebaute numerische updown Kontrolle in Vba oder müssen wir ein Steuerelement wie das erstellen?numerische up down Kontrolle in VBA

Wenn es ein solches Steuerelement gibt, was sind die Ereignisse, die wir verwenden können.

Pls vorschlagen.

Antwort

16

können Sie verwenden, um die SpinButton1 Steuerung für das

SCHNAPPSCHUSS

enter image description here

CODE

Sie entweder die min und max des SpinButton1 in Entwurfszeit festgelegt oder zur Laufzeit wie unten gezeigt.

Private Sub UserForm_Initialize() 
    SpinButton1.Min = 0 
    SpinButton1.Max = 100 
End Sub 

Private Sub SpinButton1_Change() 
    TextBox1.Text = SpinButton1.Value 
End Sub 

Followup

Wenn Sie den Wert der Textbox auf Basis erhöhen wollen oder zu verringern, was eine Benutzereingabe in das Textfeld hat dann dieses verwenden. Dies macht auch die Textbox eine „Number Only“ Textbox, die gerade Ihre andere Anforderung erfüllt;)

Private Sub SpinButton1_SpinDown() 
    TextBox1.Text = Val(TextBox1.Text) - 1 
End Sub 

Private Sub SpinButton1_SpinUp() 
    TextBox1.Text = Val(TextBox1.Text) + 1 
End Sub 

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 
    Select Case KeyAscii 
     Case vbKey0 To vbKey9, 8 
     Case Else 
     KeyAscii = 0 
     Beep 
    End Select 
End Sub 
+0

+1 schön und einfach – brettdj

+0

meinen Tages ..... In der Tat habe ich zwei Drehknöpfe mit Textfeldern verknüpft Erreiche mehr Mittel ... Gibt es eine Möglichkeit, nur Zahlen in einem Textfeld zuzulassen, in dem eine Drehsteuerungsschaltfläche verknüpft ist ... ???? – Premanshu

+0

Setzen Sie die Eigenschaft '.Locked' des Textfelds auf' TRUE', damit kein Benutzer sie manuell eingeben kann. Rest der Drehknöpfe wird sich darum kümmern :) –