我是VBA的初学者,试图编写If
的代码来帮助我完成日常任务,但是,我收到了一个错误。请检讨并帮助我。此外,我希望它一直运行,直到列AD为空。
我刚刚用Excel编写了
IF(AD2<=0,"Negative",
IF(AD2<67,"$1 - $67",
IF(AD2<100,"$67 - $100",
IF(AD2<200,"$100 - $200",
IF(AD2<300,"$200 - $300",
IF(AD2<500,"$300 -$500",
IF(AD2<1000,"$500-$1000",">=1000")))))))
我希望这个结果在Column AE
。
答案 0 :(得分:0)
我不完全确定你得到了什么错误,但是看到你的逻辑,你将通过重写你的公式得到你想要的输出,如下所示:
注意:(您可以使用 Alt + Enter 以下列方式在单元格中输入公式)
=IF(AD2<=0,"Negative",
IF(AND(AD2>0,AD2<=67),"$1 - $67",
IF(AND(AD2>67,AD2<=100),"$68 - $100",
IF(AND(AD2>100,AD2<=200),"$101 - $200",
IF(AND(AD2>200,AD2<=300),"$201 - $300",
IF(AND(AD2>300,AD2<=500),"$301 - $500",
IF(AND(AD2>500,AD2<=1000),"$501 - $1000",">$1000")))))))
如果您想使用VBA作为原始问题的一部分自动执行此操作,可以尝试以下操作。
Dim lr As Long
Dim myformula As String
myformula = "=IF(AD2<=0,""Negative"","
myformula = myformula & "IF(AND(AD2>0,AD2<=67),""$1 - $67"","
myformula = myformula & "IF(AND(AD2>67,AD2<=100),""$68 - $100"","
myformula = myformula & "IF(AND(AD2>100,AD2<=200),""$101 - $200"","
myformula = myformula & "IF(AND(AD2>200,AD2<=300),""$201 - $300"","
myformula = myformula & "IF(AND(AD2>300,AD2<=500),""$301 - $500"","
myformula = myformula & "IF(AND(AD2>500,AD2<=1000),""$501 - $1000"","">$1000"")))))))"
With Sheets("Sheet1") '/* change it to your actual sheet name */
lr = .Range("AD" & .Rows.Count).End(xlUp).Row
.Range("AE2:AE" & lr).Formula = myformula
End With
您可以在不使用变量的情况下实际分配公式字符串 并且也没有像我上面那样使用连接,但为了清楚起见,我将公式的每个部分分开以确保我们已经涵盖了所有内容。 HTH。