首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vba中关于for嵌套循环跟单循环中step值的改变!

2012-12-25 
vba中关于for嵌套循环和单循环中step值的改变!!!单循环代码:For i 5 To 19 Step iIf sheetThird.Cells(i

vba中关于for嵌套循环和单循环中step值的改变!!!
单循环代码:For i = 5 To 19 Step i
            If sheetThird.Cells(i, 1).Mergecells = True Then
                i = i + sheetThird.Cells(i, 1).MergeArea.Count
            End If
        Next
        这样会把我第一列中所有的合并单元格都给遍历到。
嵌套循环代码:For m = 6 To 17 Step m
                 For i = 5 To 19 Step i
                    If sheetThird.Cells(i, 1).Value = sheetOne.Cells(m, 11).Value Then
                      MsgBox "相同"
                      Exit For
                    Else
                      MsgBox "不相同,继续遍历"
                      i = i + sheetThird.Cells(i, 1).MergeArea.Count
                    End If
                 Next
                 m = m + sheetOne.Cells(m, 11).MergeArea.Count
               Next
         这样第一列中的第二个单元格遍历不到,在第二次循环的时候,第一次的步长为2的话,i的值应该为7,但是为什么为12?莫名其妙的多了5,是因为For i = 5 To 19 Step i的时候i=i+5?


跪求高手帮忙解决嵌套循环中step问题!!!急!急!急!
[解决办法]
For i = 5 To 19 Step 2

[解决办法]

引用:
这个step是个变化的,比如我几个合并单元格所占有的行数为2,5,3,5。第一次的是应该从5开始,第二次的是应该从5+2开始,第三次的时候应该从5+2+3开始···以此类存,你这样的话你是写死了步长为2!跪求解决!!

那就不要用FOR循环
[解决办法]
For m = 6 To 17 Step m
该句编译后m是做为常量对待,在循环体中修改m,对于step m是无效的,并且step m中的m的确定是在m=6之前!

热点排行