VBA If语句公式在循环和范围函数中获取单元格值

我正在尝试每隔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"")"
hezhen2009 回答:VBA If语句公式在循环和范围函数中获取单元格值

  1. 您需要.Formula而不是.FormulaR1C1-您没有使用R1C1引用。

  2. 从公式部分删除Range调用。这是将VBA与常规工作表公式语法混合在一起。

  3. 您可以使用AND简化公式。在这种情况下,您根本不需要串联a。 Excel足够聪明,可以更新相对引用。

Sub Test()
    Dim myFormula As String
    myFormula = "=IF(AND(J5>=K5,J5<=L5),""PASS"",""FAIL"")"

    Dim a As Long
    For a = 5 To 789 Step 16
        Range("M" & a).Formula = myFormula
    Next
End Sub
本文链接:https://www.f2er.com/3143481.html

大家都在问