2017-06-21 46 views
-1

有人可以幫助我嗎?用戶表單中沒有計算的值

我有一個用戶窗體有一些數字字段。問題是我的Total框不會計算它們,因爲它將文本識別爲一個數字。所以例如,如果我要說HE.Value(10)+ ME.Value(10)例如應該= 20然而Total是來到1010.如果我*它,而是我收到一個錯誤調試,因爲它將該值識別爲文本格式。

我從來沒有在用戶窗體中出現過這個問題。有人能夠協助嗎?

感謝,

+0

您需要將您的字符串轉換爲數字,例如嘗試'CINT(ME.VALUE)'如果這些是整數或'CLNG(ME.VALUE)'如果他們有小數位 – MiguelH

+0

@MiguelH謝謝,不知道爲什麼我沒有想到這一點。非常感謝您的回答 – MBrann

+0

您可能也對此感興趣..http://www.ozgrid.com/VBA/validate-numbers.htm – MiguelH

回答

2

您有:

totalBox.Text = box1.Text + box2.Text 

當兩個操作數String,則+運營商可以作爲一個字符串連接運算符,這意味着它的工作原理完全一樣&操作。這就是你如何得到1010而不是20:VBA認爲你要求它連接連接字符串。

VBA無法對字符串進行運算,所以如果您的字符串代表數字值,則需要先將其轉換。

如果你只使用整數的工作,那麼你可以用CLng類型轉換功能做到這一點:

totalBox.Text = CStr(CLng(box1.Text) + CLng(box2.Text)) 

注意這使得背到字符串的轉換明確(CStr);將其保留並且VBA將隱含地執行該類型轉換。

+0

@ A.S.H這可能是正確的,懶得檢查,編輯......該死的隱式類型轉換遍佈各地... –