[英]Excel VBA Multiple if then calculations for one cell result
如果满足条件,则尝试将公式应用于单元格。 如果首字母出现在D列至G列中,宏将首先在搜索表中查找所有并保留所有行。在我的宏中,我正在寻找首字母RPR(其他首字母将为NO)。 如果在D中找到RPR,但在E中找不到RPR,则计算应为K * 0.3。 如果不是这种情况,那么我需要继续寻找第二种情况,依此类推。 我附上一张表格图片,因为我不确定下面发布的内容是否正确显示。 数据表
D E K N
RPR NO 2000 result (K*0.3)
NO RPR 1000 result (K*0.3)
RPR (blank) 1000 result (K*0.5)
RPR RPR 2000 result (K*0.5)
NO no 2000 result 0
No (Blank) 2000 result 0
我玩过很多不同的格式,无法正常工作。 这就是我的位置。 我已经在此进行了一天以上的工作,真的可以使用一些帮助。 我认为我不需要为零准备任何东西,因为如果单元格不符合其他条件,则该单元格可以为空。
Dim lrow As Long
lrow = Cells(Cells.Rows.Count, "D").End(xlUp).Row
Range("N2:N" & lrow).Formula = "=IF(D2 = ""RPR"") AndIF (F2 = ""RPR"" Or"""")
then N2 = (K2 * 0.5,0)"
Range("N2:N" & lrow).Formula = "IF D2 = ""RPR"" AndIF E2 <> ""RPR"" Then N2 =
(K2 * 0.3)"
Range("N2:N" & lrow).Formula = "IF D2 <> ""RPR"" AndIF E2 = ""RPR"" Then N2 =
(K2*0.3)"
Range("N2:N" & lrow).Value = Range("N2:N" & lrow).Value
sub sum()
Dim lrow As Long
lrow = Cells(Cells.Rows.Count, "D").End(xlUp).Row
'\\assuming you are starting with row 1
For r = 1 to lrow
if range("D"& r) = "RPR" and (range("F"& r) = "RPR" or isempty(range("F"& _
r)) then range("N"& r) = 0.5 * range("K"& r)
elseif range("D"& r) = "RPR" and range("F"& r) <> "RPR" then range("N"& _
r) = 0.3 * range("K"& r)
elseif range("D"& r) <> "RPR" and range("E"& r) = "RPR" then range("N"& _
r) = 0.3 * range("K"& r)
next r
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.