2013-09-26 168 views
1

我想弄清楚如何跳过For循环的迭代。我做了一些研究,发现我可以使用Continue For,但这并不能解决我的问题。这里我想要什么为例做:对于循环,如何跳过迭代

For i As Long = 1 to 7 Step 1 
    If (i= 2, 5 and 7) Then 
     'perform this action 
    Else 
     'perform other action. 
    End If 
Next i 

我制定了以下,但不幸的是它的工作原理为<= 2和我的循环的Else部分,是57,执行相同的动作是什么我要求在Else部分做。

For i As Long = 1 To 7 Step 1 
    If (i <= 2 AndAlso 5 AndAlso 7) Then 
     strRange = ("A:D") 
    Else 
     strRange = ("A:A") 
    End If 

    xlRefSheets = ClientSheets(i) 

    With xlRefSheets 
     .Cells.EntireColumn.AutoFit() 
     .Range(strRange).EntireColumn.Hidden = True 
    End With 
Next i 
+3

'如果(我<= 2 AndAlso 5 AndAlso 7)'不会评估你可能认为它的方式...... – Tim

+1

请将Option Strict On放在代码文件的顶部,或者将其设置在项目的属性中。您的If条件不应编译,因为它期望布尔表达式。 –

回答

2

怎么样if条款重申对

If (i <= 2) or (i = 5) or (i =7) Then 
    ... 

所以,你的代码就变成了:

For i As Long = 1 To 7 Step 1 
    If (i <= 2) OR (i = 5) OR (i = 7) Then 
     strRange = ("A:D") 
    Else 
     strRange = ("A:A") 
    End If 

    xlRefSheets = ClientSheets(i) 
    With xlRefSheets 
     .Cells.EntireColumn.AutoFit() 
     .Range(strRange).EntireColumn.Hidden = True 
    End With 
    Next i 
+0

非常好,正是我需要的。 –