在Excel中通过vba添加单元格公式

我不是Excel或VBA专家,但是我想将当前的Excel公式插入到使用VBA的单元格中。

目前的Excel公式:

=IF(OR(ISNUM(D570)=FALSE;ISNUM(D573)=FALSE);"";IF(C573="Total";D573-D570;"")) 

VBA公式:

  ActiveSheet.Range("a" & ActiveSheet.Rows.Count).End(xlUp).Offset(2, 12).Value = "=IF(OR(ISNUM(R[-3]C[-9])=FALSE;ISNUM(R[0]C[-9])=FALSE);'';IF(R[0]C[-10]='Total';R[0]C[-9]-R[-3]C[-9];''))" 

它不工作…有人可以帮助我吗?

尝试在您的VBA代码中使用.formula =而不是.value =

设置单元格的.value只需复制你指定的任何值。 在这种情况下,您的公式只是转换为string值。

使用.formula属性,实际上是指定了用来计算值的公式,这正是您正在寻找的。

我可以首先build议简化你的公式,从:

 =IF(OR(ISNUM(D570)=FALSE;ISNUM(D573)=FALSE);"";IF(C573="Total";D573-D570;"")) 

…至…

 =IF(AND(C573="Total"; ISNUM(D570); ISNUM(D573)); D573-D570; "") 

然后,我将设置一个单元格(下面示例中的活动单元格)以使用VBA代码使用该公式:

 ActiveCell.Formula = "=IF(...)"