2016-09-18 1 views
1

Ich mache ein einfaches Programm in Excel VBA. Ich habe ein einfaches UserForm für arithmetische Operationen erstellt. Ich habe zwei Eingabetextfelder und 4 Befehlsfelder für Addition, Subtraktion, Multiplikation und Division erstellt. Wenn ich den Code ausführe, kann ich alle Operationen mit Ausnahme der Addition ausführen. Wenn ich die zwei Eingaben eintrage und auf die Additionsschaltfläche klicke, wird das Ergebnis verknüpft, anstatt die Additionsoperation auszuführen. Beispiel: Eingang 1 = 10, Eingang 2 = 10. Ergebnis = 1010.Additionsoperation in Excel VBA

Hier ist mein Code:

Private Sub CommandButton2_Click() 

ANSWER = INPUT1 * INPUT2 

End Sub 

Private Sub CommandButton3_Click() 

ANSWER = INPUT1 - INPUT2 

End Sub 

Private Sub CommandButton4_Click() 

ANSWER = INPUT1 + INPUT2 

End Sub 

Private Sub CommandButton5_Click() 

ANSWER = INPUT1/INPUT2 

End Sub 

Hier ist das Bild des ouput i für die Additionsoperation immer am

Antwort

1

Versuchen Sie, den Code zu ändern, um numerische Operationen zu erzwingen.

ANSWER = Val(INPUT1) + Val(INPUT2) 

Vielleicht möchten Sie dort einchecken.

If IsNumeric(Input1) Then 
    INPUT1 = Val(INPUT1) 
Else 
    INPUT1 = 0 
End if 

So etwas für jede Variable, die Sie verwenden.

-1

Sie können auch -*\/ verwenden, um die den Text Zahl zu konvertieren:

ANSWER = INPUT1 - 0 + INPUT2 
ANSWER = INPUT1 * 1 + INPUT2 
ANSWER = INPUT1/1 + INPUT2 
ANSWER = INPUT1 \ 1 + INPUT2 ' integer division 
ANSWER = INPUT1 + --INPUT2 
ANSWER = INPUT1 - -INPUT2 
1

Zwei Dinge hier zu sehen:

  1. Alles, was in ein Textfeld eingegeben ist eine Zeichenfolge, so dass MsgBox TypeName(me.Textbox1) immer gibt:

    enter image description here

  2. "+" wird ein Verkettungsoperator sein, wenn beide Variablen Zeichenfolgen sind.

Daher werden Sie explizit die Variablen in Zahlen konvertieren, bevor Sie die + mit ihnen hinzufügen, so dass die + nicht als Verkettungsoperator behandelt werden.

Um Text in Zahlen zu konvertieren, können Sie Val verwenden können, CDbl, CInt, CLng oder CSng. Wählen Sie die beste Passform.