有人可以帮帮我吗。
我有一个userform,它有许多数字字段。问题是我的总计框不会计算它们,因为它将数字识别为文本。因此,例如,如果我要说HE.Value(10)+ ME.Value(10)例如应该= 20但是Total将到达1010.如果我*它而不是我收到错误调试,因为它将值识别为文本格式。
之前我从未在userform中遇到此问题。有人能帮忙吗?
谢谢,
答案 0 :(得分:2)
你有:
totalBox.Text = box1.Text + box2.Text
当两个操作数为String
时,+
运算符用作字符串连接运算符,这意味着它与&
运算符完全相同。这就是{j}代替1010
的方式:VBA认为您要求连接字符串。
VBA无法对字符串进行算术运算,因此如果您的字符串代表数值,则需要先将其转换。
如果您只使用整数,则可以使用20
类型转换功能执行此操作:
CLng
请注意,这使得返回字符串转换显式(totalBox.Text = CStr(CLng(box1.Text) + CLng(box2.Text))
);保留它,VBA将隐式执行该类型转换。