仅在当前行为奇数时运行For循环

时间:2019-06-12 03:41:33

标签: excel vba for-loop excel-formula

我正在尝试运行一个循环以创建一些数据,如图所示。我正在尝试运行这个简单的循环,但只希望它针对奇数行甚至偶数行运行。我对如何执行此操作有一些想法,但不知道如何将其放入代码中。

例如,我不确定Excel VBA是否可以处理以下内容:如果单元格值= S AND行为奇数,则...

另一件事我认为“范围”可以定义为仅奇数或偶数,但没有运气。这可能吗?

Dim typecheck As Range

Set typecheck = Range("B1:B60") 'set the range itself to odd/even? or no range at all? just individually?

For Each cell In typecheck

    If cell.Value = "S" Then 'and odd row?

    cell.Offset(0, 1).Value = "_status"

    End If

Next

预期结果是,循环将遍历1-60行,并且仅当范围中的单元格具有S值并且该行是奇数行时才会产生结果。

1 个答案:

答案 0 :(得分:1)

这将起作用:Mod函数为您提供余数。如下使用。

Dim typecheck As Range

Set typecheck = Range("B1:B60") 

For Each cell In typecheck

    If cell.Value = "S" And Not cell.Row Mod 2 = 0 Then 'For Odd Row

    cell.Offset(0, 1).Value = "_status"

    End If

Next

仅在奇数行上通过if条件。对于偶数行,只需从if条件中删除Not

在将行号除以2后,我们正在检查余数。如果0则是偶数行,如果不是,则是奇数行。