r1c1和excel公式产生错误

时间:2016-04-14 09:09:34

标签: excel vba excel-vba excel-formula

我已经做了这个非常简单的循环,将公式应用于范围内的所有单元格:

For Each cell In Range("G5:G500")
    cell.Offset(0, 7).FormulaR1C1 = "=IF(Len(RC[-4]>0),(RC[-2])/(RC[-4]),"")"
Next

它给出"应用程序定义的或对象定义的错误"为行

cell.Offset(0, 7).FormulaR1C1 = "=IF(Len(RC[-4]>0),(RC[-2])/(RC[-4]),"")"

我无法解决我在这里出错的地方。我试过了:

  • 各种不同格式的R1C1(例如RC [1]或R [] C [1])
  • 使用公式代替R1C1但我不能几何参考单元格
  • 我非常确定我的所有包围都是正确的
非常困惑,非常感谢这个提示或提示!

2 个答案:

答案 0 :(得分:0)

不确定问题出在哪里,但当我将代码更改为

For Each cell In Range("G5:G500")
    cell.Offset(0, 7).FormulaR1C1 = "=IF(Len(RC[-4]>0),(RC[-2])/(RC[-4]),N/A)"
Next

它工作正常。所以可能在if语句中出现""插入单元格......(我会深入研究)

编辑: 是的,问题是支架,如评论中提到的那样

For Each cell In Range("G5:G500")
    cell.Offset(0, 7).FormulaR1C1 = "=IF(Len(RC[-4]>0),(RC[-2])/(RC[-4]),)"
Next

答案 1 :(得分:0)

我之前有这个!将0更改为0.001或更小,并将其包装在IFERROR公式中,以阻止vba执行公式所产生的错误!这应该做的伎俩