我使用了个表格,我的意思是想表格中第3,5,7列中单元格的值为"×"时就Call FSOW函数,输出记录,现在问题是当某一行的3,5,7列单元格都为"×"时,会输出3条记录,有2个"×"时输出2条记录,而我的意思是不管有几个"×"只输出一条记录,怎么去弄啊??Dim i As Long, j As LongWith Grid1
For i = 1 To .Rows - 1
    For j = 2 To 6 Step 2
        If .Cell(i, j + 1).Text = "×" Then Call FSOW(Time & "," & .Cell(i, 1).Text & _
            "," & .Cell(i, 2).Text & "," & .Cell(i, 3).Text & "," & .Cell(i, 4).Text & _
            "," & .Cell(i, 5).Text & "," & .Cell(i, 6).Text & "," & .Cell(i, 7).Text & _
            vbCrLf, App.Path & "\OffNetRecord\" & Year(Date) & Month(Date) & Day(Date) & ".ini")
        
    Next j
Next i
End With

解决方案 »

  1.   

    For 行从1到最大
        For 列 从1到最大
             If 3或者5或者7列为× 那么
                输出
                Exit For
            End If
        Next 列
    Next 行
    在那行进行列判断的时候发现有×,输出后退出列循环。
      

  2.   

    是啊 Exit For 应该可以 ,这都没想到 谢谢了 我试验下看
      

  3.   

    Exit For 不行啊 ,这下连输出也没有了
      

  4.   

    把循环放到FSOW里面去,外面不要,FSOW里判断有一个X即退出循环。