Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2393|回复: 3

[已解决]EXCEL高手用VBA解释一下for循环modthenprintfd

[复制链接]
发表于 2016-2-20 13:28 | 显示全部楼层 |阅读模式


EXCEL高手用VBA解释一下for循环modthenprintfd

private sub command1_click()
for n=1 to 20
if n mod 3 <> 0 then m=m+n\3
next n
print n
end sub
窗体显示内容(C)

A,15
B,18
C,21
D,24

为什么选C


最佳答案
2016-2-22 16:59
这是我看到你提的第2道考试题,
看来你并不想学VBA,但是为了要应付考试,还不得不学
你很聪明,来这你真的是对了。

这个题首先主循环要进行20次循环,即for n=1 to 20
而循环体内的if n mod 3 <> 0 then m=m+n\3 是给变量m赋值,
而最后一句print n却是显示n的值,那么整个循环体都是糊弄人的。
那么n为什么不是20而是21呢?
上面 “grf1973”说了,运行最后一次n=20时,运行到next后,n又加了1,就变成了21。

其实通过这道题,我们学会了一个道理,即for循环体完成后,循环变量应该是几?

答案就是变量的最大值加1。

那么知道这些有什么用呢?
这样说吧,我们可以用循环变量(本题为n)的值来判断一个循环体是否真正的循环一遍。
也就是说循环是正常循环结束的,还是符合了某些条件跳出的。

编程多了,就知道它的用处还是非常不错的
发表于 2016-2-20 13:29 | 显示全部楼层
回复

使用道具 举报

发表于 2016-2-22 16:25 | 显示全部楼层
不用管循环体的内容
for n=1 to 20
  ....
next n
当n=20时,运行到next,n加1变成21   
所以结果为21

评分

参与人数 1 +6 收起 理由
vbyou127 + 6 来学习

查看全部评分

回复

使用道具 举报

发表于 2016-2-22 16:59 | 显示全部楼层    本楼为最佳答案   
这是我看到你提的第2道考试题,
看来你并不想学VBA,但是为了要应付考试,还不得不学
你很聪明,来这你真的是对了。

这个题首先主循环要进行20次循环,即for n=1 to 20
而循环体内的if n mod 3 <> 0 then m=m+n\3 是给变量m赋值,
而最后一句print n却是显示n的值,那么整个循环体都是糊弄人的。
那么n为什么不是20而是21呢?
上面 “grf1973”说了,运行最后一次n=20时,运行到next后,n又加了1,就变成了21。

其实通过这道题,我们学会了一个道理,即for循环体完成后,循环变量应该是几?

答案就是变量的最大值加1。

那么知道这些有什么用呢?
这样说吧,我们可以用循环变量(本题为n)的值来判断一个循环体是否真正的循环一遍。
也就是说循环是正常循环结束的,还是符合了某些条件跳出的。

编程多了,就知道它的用处还是非常不错的

评分

参与人数 1 +6 收起 理由
vbyou127 + 6 来学习

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-30 06:45 , Processed in 0.344079 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表