【问题标题】:For Loop, how to skip iterationsFor Loop,如何跳过迭代
【发布时间】:2013-09-26 22:17:57
【问题描述】:

我试图弄清楚如何在 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

我计算了以下内容,但不幸的是,它适用于我的循环的 <= 2Else 部分以及 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

【问题讨论】:

  • If (i &lt;=2 AndAlso 5 AndAlso 7) 不会评估您可能认为的方式......
  • 请将 Option Strict On 放在代码文件的顶部或在项目的属性中设置。您的 If 条件不应编译,因为它需要一个布尔表达式。

标签: vb.net


【解决方案1】:

如何将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

【讨论】:

  • 非常好,正是我需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-31
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 2015-05-24
  • 2021-08-23
相关资源
最近更新 更多