2016-09-18 110 views
1

我在Excel VBA中做一個簡單的程序。我爲算術運算創建了一個簡單的UserForm。我創建了兩個輸入文本框和4個用於加,減,乘和除的命令框。當我運行代碼時,我能夠執行除加法操作之外的所有操作。當我輸入兩個輸入並單擊加法命令按鈕時,結果將被連接而不是執行加法操作。例如:輸入1 = 10,輸入2 = 10。結果= 1010excel vba中的加法運算

這是我的代碼:

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 

這裏是輸出中我得到的加法運算

的圖像

回答

1

嘗試更改代碼以強制執行數字操作。

ANSWER = Val(INPUT1) + Val(INPUT2) 

您可能想要在那裏進行檢查。

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

類似於你正在使用的每個變量。

-1

您還可以使用-*\/在將文本轉換爲數字:

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

兩件事情需要在這裏看看:

  1. 任何輸入到一個文本框是一個字符串,這樣MsgBox TypeName(me.Textbox1)將始終給出:

    enter image description here

  2. +」將在兩個變量均爲字符串時成爲連接運算符。

因此,你必須明確地使用+添加它們,以便+將不作爲連接運算符來處理之前轉換變量爲數字。

要將文本轉換爲數字,可以使用Val,CDbl,CInt,CLngCSng。選擇最合適的。