【发布时间】:2020-03-04 05:48:33
【问题描述】:
我正在尝试每隔 16 行将 If 公式分配给某个单元格。公式需要比较 J、K 和 L 列中单元格的值并给出通过或失败结果。
我在使这个 If 公式循环工作时遇到问题。请帮忙!我的代码如下。
首先我收到编译错误提示“预期语句结束”
其次,还有其他方法可以使这些工作吗?我需要在每 16 个单元格处将相同的公式应用于单元格 M5 到 M789。
For a = 5 To 789 Step 16
Range("M" & a).FormulaR1C1 = "=IF(Range("J" & a)>= Range("K" & a),IF(Range("J" & a))<= Range("L" & a),""PASS"", ""FAIL""),""FAIL"")"
【问题讨论】:
-
1) 你需要
.Formula而不是.FormulaR1C1。 2) 不要在公式中使用Range- 这会将 VBA 混合到常规工作表公式中。您不能在工作表中使用Range(J5)- 只能使用J5。 -
谢谢。除了 Range,我还能用什么来获取循环内 J5 到 J789、K5 到 K789 和 L5 到 L789 单元格的值?
-
只需
"J"、"K"和"L"- 从公式部分删除Range调用。 -
Range("M" & a).Formula = "=IF(("J" & a)>=("K" & a),IF(("J" & a)
-
如果您真的需要用公式填充这些单元格,也可以提出这个问题。它有什么目的。
J、K和L列的值会改变吗?否则你在做不必要的计算。
标签: excel vba if-statement range