单循环代码: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问题!!!急!急!急!

解决方案 »

  1.   

    For i = 5 To 19 Step 2
      

  2.   

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

  3.   

    For m = 6 To 17 Step m
    该句编译后m是做为常量对待,在循环体中修改m,对于step m是无效的,并且step m中的m的确定是在m=6之前!