ad

跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_3.3.3类顺风求积分场次(Do While)

网友投稿 126 2023-11-07

【摘要】 本书摘自《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》一书中第3章,第3节,韩小良著。

3.3.3

3.1类顺风求积分场次(Do While)

皮蛋: 我晕,举个例子吧。

无言:那就以简单的比赛场上的积分累计对应的场次求解吧。

我们知道不管乒乓球、羽毛球、篮球、足球等比赛都会有一个积分和场次记录,现在来模拟这样的场次积分表,如图3-20所示。

现在假设要指定某个分数,然后根据每场的积分累计得到满足该指定数的场次,将分别使用 Do While…Loop 语句和 Do Until…Loop

跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_3.3.3类顺风求积分场次(Do  While)

语句来实现统计满足积分的最低场次,如代码 3-17 所示

代码3 - 17 Do While…Loop 判断积分场次

1|Sub JIfen_Do_While_LoopO

2| Dim Jifen As Integer,Cou As Integer,Tem_Sum As Integer

3| Jifen=Application.Input Box("请输入需要累计的积分,不得小于1!","总积分",100,Type:=1) 4| If Jifen<=0 Or Jifen>[sum(B:B)]Then MsgBox”所选积分超过允许范围,过程将退出。":End 5| Cou=2

6| Do While Tem Sum

71 Tem_Sum=Tem_Sum+Cells(Cou,"B"),Value

8| Cou=Cou+1

9| Loop

10| MsgBox Cells(Cou-1,"A"),Text&”达到积分"&Jifen&vbCr&” 场次累计积分为"&Tem_Sum

11|End Sub

(1)代码3-17示例过程中使用Application.InputBox方法让用户输入需要累计的积分总数, 默认为100分;接着用If条件语句判断输入积分是否小于等于0或者输入的积分大于B 列的 总积分数,满足时则退出过程。

皮蛋: Cou 变量是干什么的,为什么是2呢?

(2)Cou 变量为指定需要开始统计积分的行号,因为第1行是标题所以直接跳跃到2, 接着使用 Do循环语句判断表达式。Do 语句采用While 的先判断后执行的方式——当表达式返 回结果为 True时则执行Do 的中间语句。代码3-17示例过程中用Tem_Sum 变量来累计每个单 元格的积分, Tem_Sum 的初始值为0。

(3)当Cou 为2时,引用Cells(2,B )单元格的积分1,通过Tem_Sum=Tem_Sum+Cells(2,B) 的累计数为1,Tem_Sum 变量

(4)第1次循环后Tem_Sum的值变为B2 单元格的值,再次与Jifen 变量比较如果 还小于输入值,则继续将B3 单元格的值累计到Tem_Sum 变量,如此循环直至Tem_Sum 的累计值大于等于Jifen变量时, Do 循环将自动结束,并执行Msgbox 函数语句的提示 信息。

皮 蛋 :也就是说只有当循环的累计值大于等于指定的积分值时, Do 循环才退出执行后面 的语句。

无言:是的,如图3-21所示,预定的积分值为105,但是 Do循环后Tem_Sum的累计值为106,满足了105的积分要求, 此时自动退出Do 循环并执行Msgbox提 示。

4.1 类逆风求积分场次 (Do Until)

第1类第1种用法 Do While 是先判断后执行,接下来将 运用的还是先判断后执行的语句,但是这次采用条件不满足 则执行的语句。还是继续用场次积分举例,先来看代码3-18。

代码3 - 18 Do Until…Loop 判断积分场次

1|Sub JIfen_Do_Until_LoopO

21 Dim Jifen As Integer,Cou As Integer,Tem_Sum As Integer

3| Jifen=Application.InputBox(“请输入需要累计的积分,不得小于1!”,"总积分",100,Type:=1) 4| If Jifen<=0 Or Jifen>[sum(B:B)]Then MsgBox"所选积分超过允许范围,过程将退出。": End 5| Cou=2

6| Do Until Tem_Sum >=Jifen

71 Tem_Sum=Tem_Sum +Cells(Cou,"B").Value

8| Cou=Cou+1

9| Loop

10| MsgBox Cells(Cou-1,"A").Text&"达到积分"&Jifen&vbCr&" 场次累计积分为"&Tem_Sum

11|End Sub

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Python+3自动化软件发布系统》Django 2实战_了解Python的更好方法_3.2.3 将本地代码推送到 GitLab 中
下一篇:《Python+3自动化软件发布系统》Django 2实战_了解Python的更好方法_第一章 Python 基础
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×