繁体   English   中英

Excel VBA多个,如果一个单元格结果然后进行计算

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM