我创建了一个包含五个文本框的Excel表单。这些TextBoxes接受任何数值。输入五个数字后,会有第六个文本框显示这些值的总和。这些值的总和应始终为100%。这是我的代码:
Private Sub TextBox1_Change()
Dim Value As Single
Value = Val(TextBox1.Value) + Val(TextBox2.Value) + Val(TextBox3.Value) + Val(TextBox4.Value) + Val(TextBox5.Value)
TextBox6.Value = Value
End Sub
我对所有文本框更改事件都有相同的代码。不幸的是,这不起作用。当我输入10
,20
,30
,40
作为输入时,不会显示100%
,而是显示10203040
作为结果。
我做错了什么?
答案 0 :(得分:1)
我相信您需要使用的函数是CDbl
或CSng
,它会转换为双重或单个浮点数。它不会处理输入的空格或非数字数据,因此您可能需要先检查输入的无效数据。这样的事情应该有效:
Value = 0
If IsNumeric(TextBox1.Value) Then Value = Value + CSng(TextBox1.Value)
If IsNumeric(TextBox2.Value) Then Value = Value + CSng(TextBox2.Value)
If IsNumeric(TextBox3.Value) Then Value = Value + CSng(TextBox3.Value)
If IsNumeric(TextBox4.Value) Then Value = Value + CSng(TextBox4.Value)
If IsNumeric(TextBox5.Value) Then Value = Value + CSng(TextBox5.Value)
TextBox6.Value = Value