VBA循环通过范围并替换相邻行单元格中的值

时间:2015-03-05 15:07:45

标签: vba loops offset

我对某些代码似乎没有为我正常工作提出疑问。 我已经设置了一些代码,我认为它是一个基本的循环范围并替换相邻的行单元格,虽然没有发生错误,但我没有得到理想的结果。

如果有人知道更好,他们可以查看下面的代码并给我一些建议/解决方法让事情滚动:

For Each cCell In Range("C16,C1000")
    'perform action if cell value = "-"
    If ActiveCell.Value = "-" Then
    'move to adjacent cell
    ActiveCell.Offset(0, 1).Select
    'change the cell value to "-"
    Selection.cell.Value = "-"
Else
    ActiveCell.Offset(0, 1).Select
End If
Next cCell

2 个答案:

答案 0 :(得分:1)

您应该使用ActiveCell.Value

,而不是使用cCell.Value

另外,请避免使用Select。这是邪恶的。

例如:

cCell.Offset(0,1).Value = "-"

答案 1 :(得分:0)

是的,避免使用select。但如果必须,你需要这样做。您必须在每次迭代中选择cCell,以便ActiveCell选择它。

您不需要使用Select虽然也不应该,但您仍然可以在不首先选择cCell的情况下更新cCell。正如joseph4tw所述。

For Each cCell In Range("C16,C1000")
    'perform action if cell value = "-"
    cCell.select

    If ActiveCell.Value = "-" Then
      'edit adjacent cell
      ActiveCell.Offset(0, 1).Value = "-"    
    End If
Next cCell
相关问题