偏移代码无法替换单元格中的数据

时间:2015-03-06 16:42:03

标签: excel-vba vba excel

我已经替换了以前有#N / A的列中的单元格以反映“A”但是当我运行下面的代码时,值“A”不会更改为我在下面选择的偏移量。你能给些建议么?提前谢谢!

Set SrchRng = ActiveSheet.Range("O2:O" & ActiveSheet.Range("O65536").End(xlUp).Row)
For Each c In SrchRng
    If c.Value = "A" Then
        c.Offset(0, -2).Value = c.Offset(0, -2).Value
    End If
Next c

1 个答案:

答案 0 :(得分:0)

Set SrchRng = ActiveSheet.Range("O2:O" & ActiveSheet.Range("O65536").End(xlUp).Row)
For Each c In SrchRng
    If c.Value = "A" Then
        c.Offset(0, -2).Value = c.Offset(0, -2).Value
    End If
Next c

所以......我们得到一个由O2:O<last populated row>组成的范围。然后我们循环遍历该范围。如果找到一个值为“A”的单元格,那么我们将该单元格的值设置为该单元格左侧的两列,并使用它自己的值。 c.Offset(0, -2).Value = c.Offset(0, -2).Value为什么要将此单元格的值设置为自身。这已经是它自己的价值了。

也许你的意思是c.Value = c.Offset(0, -2).Value