IFfunction在VBA中
我想要创build以下内容:如果列C中的单元格包含值TRUE,则列B中的相应值应该被复制到列AJ中的相应单元格。
这是我迄今为止:
Range("AJ2").Select ActiveCell.FormulaR1C1 = "=IF(C[-33]=TRUE,B:B,0)" Range("AJ2").Select Selection.AutoFill Destination:=Range("AJ2:AJ1324")
运行macros时出现问题。 以下语句被复制到列AJ: =IF(C:C=TRUE;B:(B);0)
,我期望以下内容:
=IF(C:C=TRUE;B:B;0)
请有人告诉我,我的错误在哪里?
谢谢
ActiveCell.FormulaR1C1 = "=IF(C[-33]=TRUE,RC2,0)"
您正在公式中混合R1C1和A1types的引用。 B:B
不是R1C1参考。
如果你想:
=IF(C:C=TRUE;B:B;0)
那么你需要使用:
"=IF(C[-33]=TRUE,C[-34],0)"
我怀疑这可能不是你真正想要的公式,但你没有解决这个问题。
获得正确公式的一种方法是将你真正想要的东西input到单元格中,然后检查单元格。方法R1C1的属性看看这个公式是如何在不同的表示法中形成的。
从我的描述来看,我怀疑你真正想要的是:
"=IF(RC[-33]=TRUE,RC[-34],0)"
在单元格中显示为:
=IF(C2=TRUE;B2;0)
要么
"=IF(RC3=TRUE,RC2,0)"
生产
=IF($C2=TRUE;$B2;0)