VB 如何将text控件组内的数值累加

有一个text控件组想将text内的数值累加当到小于50大于text中任何一个时结束并显示结果我的意思是说text控件组累加小于50但又要最接近50(比如,2,3,5,6... 有一个text控件组想将text内的数值累加当到小于50大于text中任何一个时结束并显示结果
我的意思是说text控件组累加小于50但又要最接近50(比如,2,3,5,6,3,5,3,1,2=25和2,3,12,32,41,1,2,4,10=49)
展开
 我来答
ireray5
2012-12-17 · TA获得超过396个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:356万
展开全部
先按你说的意思写代码,不知我是否理解正确。如果不对,请追加。

Private Sub Text1_Change(Index As Integer)'假设文本框名=text1,且是控件数组
dim icnt as integer
icnt=0
for i=text1.lbound to text1.ubound
icnt=icnt+val(text1(i).text)'累加text1控件数组中每个text的值
next
if icnt<50 then
for i=text1.lbound to text1.ubound
if icnt>val(text1(i).text) then
msgbox "text1控件数组累加值小于50大于其中任何一个,结果是" & icnt
exit for
end if
next
end if
end sub
更多追问追答
追问
text1.lbound to text1.ubound什么意思?
如果for i=0 to 9
s=s text(i).text
if s<= 50 then exit for
next i,错在哪里了。
将你提供的代码写入command可行吗?我现在身边没有电脑。
追答
text1.lbound 是text1控件数组下限,即第1个text对象
text1.ubound 是text1控件数组上限,即最后的text对象
从第1个到最后一个循环的意思。

你的代码中,
dim s as integer '加上变量定义
for i=0 to 9 '你用0,9与使用lbound ubound差不多,只是我的用法更灵活,不用改数字了。
s=s text(i).text '改成 s=s + val(text(i).text)
if s<= 50 then exit for '这里仅满足了小于50,而没有考虑大于text中任何一个的情况
next i

将你提供的代码写入command可行吗?
-> 如果是command之话,请改一下事件,如下。

Private Sub Command1_Click() '这里改成Command的单击事件,原来是Text对象的值变化事件
dim icnt as integer
icnt=0
for i=text1.lbound to text1.ubound
icnt=icnt+val(text1(i).text)'累加text1控件数组中每个text的值
next
if icntval(text1(i).text) then
msgbox "text1控件数组累加值小于50大于其中任何一个,结果是" & icnt
exit for
end if
next
end if
end sub
明天依然y
2012-12-17 · 超过16用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:13.1万
展开全部
sum=sum+val(text1(i).text)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinaboyzyq
2012-12-17 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3177万
展开全部
洗洗睡吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shaojia5241
2012-12-17 · TA获得超过629个赞
知道答主
回答量:417
采纳率:0%
帮助的人:124万
展开全部
受教了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式