首页 > 解决方案 > 正确使用 IF-Else 语句

问题描述

我在我的代码中使用上述等式在列 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

标签: vba

解决方案


If ... Else使用公式代替 VBA构造。所以替换:

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)"

推荐阅读