我已经做了这个非常简单的循环,将公式应用于范围内的所有单元格:
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]),"")"
我无法解决我在这里出错的地方。我试过了:
答案 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执行公式所产生的错误!这应该做的伎俩