迭代列中的行并检查条件

时间:2016-09-08 16:07:58

标签: excel excel-vba excel-2010 vba

对于excel编程来说相当新,并且尝试了一些陈述和条件。我有一张excel表格,格式如下:

Col. A    Col. B    Col. C
  03        1          1 
  02        0          0

我们要努力实现的是,如果A栏有03(最后应添加一个新栏目),请说“Comm'否则它应该说' Retail'。我现在有以下代码:

For Each rngCell in Range("O:O")
    If rngCell.value = "03"
      rngCell.value = "Comm"
    Else
      rngCell.value = "Retail"
    End If
Next

有人可以帮我处理代码吗?

代码已更新

1 个答案:

答案 0 :(得分:0)

你肯定是在正确的轨道上。我建议您在FOR EACH循环中指定您正在迭代的范围的属性是.cells集合,如:

 For Each rngCell in Range("O:O").Cells

我相信这是"默认"在这种背景下的财产,但它比对不起更安全,因为Ranges也有" Area"然后有了Cell,你可能有一天会在错误的事情上进行迭代。

要根据您所在的单元格/范围设置其他单元格的值,可以使用offset:

For Each rngCell in Range("O:O")
    If rngCell.value = "03"
      rngCell.offset(0,3).value = "Comm"
    Else
      rngCell.offset(0,3).value = "Retail"
    End If
Next

你也可以参考rngCell的行并提供你自己的专栏:

For Each rngCell in Range("O:O")
    If rngCell.value = "03"
      Range("R" & rngCell.Row).value = "Comm"
    Else
      Range("R" & rngCell.Row).value = "Retail"
    End If
Next