【发布时间】:2013-08-27 22:17:13
【问题描述】:
更新: 公式出现了新问题,由于公式中的文本,无法使其正常工作,公式(取自 excel)应该是,
=IF(D2<=0,"No Sales Price",E2/D2)
我尝试了尽可能多的组合,但“无销售价格”导致引号出现问题。我当前的代码是
For i = 2 To LastRowG
Range("Q" & i).Formula = "=IF(D" & i & "<=0," & "(No Sales Price)", & "(E" & i & "/D" & i & "))"
Next i
环顾四周,但没有看到任何解决问题的方法,任何启示都会得到最大的赞赏
编辑:通过插入以下行已解决此问题;
For i = 2 To LastRowG
Range("Q" & i).Formula = "=IF(D" & i & "<=0," & Chr(34) & "No Sales Price" & Chr(34) & "," & "E" & i & "/" & "D" & i & ")"
Next i
Chr(34) 插入属于该数字的 ASCII 字符,恰好是“。程序不会将其读取为已键入引号并继续正确读取代码行,但随后放置公式中的“无销售价格”正确。
它将按照公式的预期输出行,并且 Chr(34) 就像写“没有销售价格”,没有不可避免的“预期语句结束”错误
【问题讨论】:
-
如果你录制宏,你有一个固定的范围对吗?但是,如果您在 C 中添加对最后一行的检查并设置您的范围 C1:C(last row) 并获得总和呢?
标签: excel vba automation range