我在代码中使用上面的等式在M列中提供了一个值。
现在,我需要使用“ IF-ELSE”语句从M列中提取值,并在N列中返回正确的对应值。
但是,我的代码仅从“ N2”列获取值,并将其返回到N列中的所有值。
如何获取“ IF-ELSE”语句以返回相邻值,即
(M2-> N2) (M3-> N3)等
Option Explicit
Sub STADPROJ()
Dim lastrow As Long
lastrow = Range("E" & Rows.Count).End(xlUp).Row
Range("H2:H" & lastrow).Formula = ("=G2 * 1.2")
Range("I2:I" & lastrow).Formula = ("=H2 * 1.5")
Range("J2:J" & lastrow).Formula = ("=I2 * 0.8")
Range("K2:K" & lastrow).Formula = ("=J2 * 1")
Range("L2:L" & lastrow).Formula = "=SUM(G2:K2)"
Range("M2:M" & lastrow).Formula = "=(F2 - L2)"
If Range("M2") < 200 Then
Range("N2:N" & lastrow) = 1008
Else
Range("N2:N" & lastrow) = 0
End If
End Sub
答案 0 :(得分:1)
使用公式代替VBA If ... Else
构造。因此,替换:
If Range("M2") < 200 Then
Range("N2:N" & lastrow) = 1008
Else
Range("N2:N" & lastrow) = 0
End If
具有:
Range("N2:N" & lastrow) = "=IF(M2 < 200, 1008, 0)"
答案 1 :(得分:0)
您可以再次使用公式:
Range("N2:N" & lastrow).FormulaR1C1 = "=IF(RC[-1] <200, 1008, 0 )"
或者,如果要在N列中仅包含结果值:
With Range("N2:N" & lastrow)
.FormulaR1C1 = "=IF(RC[-1] <200, 1008, 0 )"
.Value = .Value
End With