2012-06-20 10 views
6

Czy istnieje wbudowana kontrola numeryczna w vba, czy też musimy stworzyć taką kontrolę?numeryczna kontrola w dół w vba

Jeśli istnieje taka kontrola, to jakie są zdarzenia, z których możemy skorzystać.

Pls proponują.

Odpowiedz

16

Można użyć kontrolę SpinButton1 dla tego

SNAPSHOT

enter image description here

KOD

Można też ustawić min i max w SpinButton1 w czasie projektowania lub w czasie wykonywania, jak pokazano poniżej.

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

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

nawiązanie

Jeśli chcesz zwiększyć lub zmniejszyć wartość pola tekstowego w oparciu o to, co użytkownik wejściowe w polu tekstowym, a następnie użyć tego. To również sprawia, że ​​pole tekstowe jest „Tylko Number” pole tekstowe, które po prostu spełnia swoją drugą prośbę;)

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 ładne i proste – brettdj

+0

made my day ..... W rzeczywistości I połączone dwa przyciski wirowania z pól tekstowych osiągnąć więcej środków ..... Czy istnieje sposób, aby pozwolić tylko numery w polu tekstowym, który ma przycisk sterowania spinowego z nim powiązane .... ???? – Premanshu

+0

Ustaw właściwość '.Locked' w polu Textbox na wartość' TRUE', aby żaden użytkownik nie mógł ręcznie wpisać do niej. Odpocznij przyciskami spinu, zajmie się nim :) –