2013-09-26 158 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

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