【发布时间】:2022-01-20 18:19:41
【问题描述】:
我有一个公式要发送到工作表中的单元格。公式为:
=IF($V6>0,IF($G6>$S6,($S6-$H6)*$K6+$Y6,($G6-$H6)*$K6+$Y6),"")
要发送它,我使用以下语句,其中变量“ir”代表公式需要插入的行,如下所示:
Cells(ir, "O").Formula = "=IF($G" & ir & ">$S" & ir & ",($S" & ir & "-$H" & ir & ")*$K" & ir & "+$Y" & ir & ",($G" & ir & "-$H" & ir & ")*$K" & ir & "+$Y" & ir & ")," & """ "")"""
我认为问题在于末尾的空字符串 ("") 周围的引号。
如果我用双引号将其括起来,则会出现语法错误。如果我用三引号将其括起来,我会收到“应用程序定义的或对象定义的错误”。 有没有简单的解决方案?
我可以对空字符串使用 NIL 吗?
其他更简单的公式运行良好。比如这个:
Cells(ir, "N").Formula = "= $L" & ir & "- $M" & ir
【问题讨论】:
-
您的条目太多。您有一个计算为真,另一个计算为假,为什么需要
," & """ "")"""部分。只需使用:Cells(ir, "O").Formula = "=IF($G" & ir & ">$S" & ir & ",($S" & ir & "-$H" & ir & ")*$K" & ir & "+$Y" & ir & ",($G" & ir & "-$H" & ir & ")*$K" & ir & "+$Y" & ir & ")" -
你说得对,斯科特,我忘记了当这个公式作为 Excel 公式在工作表中时,我运行了一个额外的检查,所以当另一列中没有条目时它会保持空白,然后当我将它转移到 VBA 我删除了第一个 IF 但没有删除它的结尾。哇,你的眼光真好,谢谢。
标签: excel vba excel-formula