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

6 excel vba formula excel-vba

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

当前的Excel公式:

=IF(OR(ISNUM(D570)=FALSE;ISNUM(D573)=FALSE);"";IF(C573="Total";D573-D570;""))
Run Code Online (Sandbox Code Playgroud)

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];''))"
Run Code Online (Sandbox Code Playgroud)

它不起作用......有人可以帮我吗?

e.J*_*mes 8

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

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

使用该.formula属性,您实际上是指定用于计算值的公式,这是您要查找的值.


Gar*_*ill 5

首先,我可以建议简化一下公式:

=IF(OR(ISNUM(D570)=FALSE;ISNUM(D573)=FALSE);"";IF(C573="Total";D573-D570;""))
Run Code Online (Sandbox Code Playgroud)

...至...

=IF(AND(C573="Total"; ISNUM(D570); ISNUM(D573)); D573-D570; "")
Run Code Online (Sandbox Code Playgroud)

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

ActiveCell.Formula = "=IF(...)"
Run Code Online (Sandbox Code Playgroud)