Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: silenthunter

[已解决]请教,为什么这个循环的变量会比我预计的结果大1 。

[复制链接]
发表于 2012-8-12 18:37 | 显示全部楼层
本身就加了1,再加一个next,就相当于+2,这样step就是2了
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2012-8-12 18:39 | 显示全部楼层
用这个就知道你循环了多少次了,不是101次,还是51次
  1. Sub 循环语句增加变量数值()

  2.     Dim i As Integer, a As Integer
  3.     For i = 0 To 100
  4.     i = i + 1
  5.     a = a + 1
  6.     Next
  7.     MsgBox a
  8. End Sub
复制代码
回复

使用道具 举报

发表于 2012-8-12 18:41 | 显示全部楼层
Sub a()
    Dim i As Integer
    For i = 0 To 2
        i = i + 1
'        MsgBox i
    Next
    MsgBox i
End Sub


Sub b()
    Dim i
    i = i + 1
    i = i + 1    '相当于next i
    i = i + 1
    i = i + 1    '相当于next i
    MsgBox i
End Sub
回复

使用道具 举报

发表于 2012-8-12 19:37 | 显示全部楼层    本楼为最佳答案   
用两个简单的代码来看问题

  1. Sub c()
  2. Dim X As Integer
  3.   For X = 1 To 1
  4.   Next
  5.   MsgBox X
  6. End Sub

  7. Sub cc()
  8. Dim X As Integer
  9.   For X = 1 To 2
  10.     X = X + 1
  11.   Next
  12.   MsgBox X
  13. End Sub

  14. Sub ccC()
  15. Dim X As Integer
  16.   For X = 1 To 2 Step 2
  17.   Next
  18.   MsgBox X
  19. End Sub
复制代码
过程 C 循环是1 到 1 自然只会循环1 次,
因为 这种循环在 next 处是自动
累加步长的(省略了 step 则步长是1)

所以C过程最后的 x是 2

而 过程 CC 则 和 过程 CCC 是一样的了,
只是 CC 把步长写在了循环内部,即x=x+1

而 CCC 则是在循环开始的时候设置的步长,

所以最后 他们的值都是 3


回复

使用道具 举报

发表于 2012-8-24 20:53 | 显示全部楼层
不建议在循环体内改变循环变量的值
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-31 20:40 , Processed in 0.119470 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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