Vba 做使用多个IFs循环直到
我需要你的帮助。我想加一个“Do…”。。。循环到“我的代码” 我所要做的就是自动更改范围,并从单元格O2开始执行所有逻辑测试,作为我代码的起点,直到单元格O1700获得值Vba 做使用多个IFs循环直到,vba,loops,excel,Vba,Loops,Excel,我需要你的帮助。我想加一个“Do…”。。。循环到“我的代码” 我所要做的就是自动更改范围,并从单元格O2开始执行所有逻辑测试,作为我代码的起点,直到单元格O1700获得值“END” 因此,如果O2=“NA”的值为0,则执行所有的IFs,如果不只是跳到下一个单元格并反复执行AvtiveCell=“NA”,直到“结束” 我添加了类似的东西,但它不能正常工作,它只是找到第一个“NA”单元,然后停止 Range ("O2").Select IF (ActiveCell = "NA")
“END”
因此,如果O2=“NA”的值为0,则执行所有的IFs,如果不只是跳到下一个单元格并反复执行AvtiveCell=“NA”,直到“结束”
我添加了类似的东西,但它不能正常工作,它只是找到第一个“NA”单元,然后停止
Range ("O2").Select
IF (ActiveCell = "NA") THEN
'MY CODE
ELSE
DO
ActiveCell.Offset(1, 0).Select
Loop Until (ActiveCell = "END")
非常感谢你的帮助。
谢谢试试看
Dim lLoop as long
lloop=2
do while cells(lloop,1)<>"END"
if cells(lloop,1)="NA" then
'my code
end if
lloop=lloop+1
loop
Dim lLoop尽可能长
lloop=2
do while单元格(lloop,1)“结束”
如果单元格(lloop,1)=“NA”,则
“我的代码
如果结束
lloop=lloop+1
环
如果可能,请避免选择单元格,除非您希望向用户显示选择更改。它会减慢进程并通常使编码复杂化。如果
必须在循环内:
range("O2").Select
do
if ActiveCell = "NA" then
' Your code goes here
else
' If you want to do something if the cell is not "NA"
end if
ActiveCell.Offset(1,0).Select
loop until ActiveCell = "End"
附言
您可以缩进代码以增强可读性
正如有人已经提到的,您是在寻找#N/A
而不是NA
避免使用Select
,因为它会减慢代码的速度。它还可能降低可维护性李>
你的意思是NA
还是#N/A
?如果是后者,我相信您需要检查单元格的错误状态。谢谢,它工作得很好,是的,我在寻找NA值,而不是错误#N/A。
Dim counter As Integer
counter = 2
Do
If Range("O" & counter) = "NA" Then
'Your code
End If
counter = counter + 1
Loop Until Range("O" & counter) = "END"