我需要你的帮助。我想在我的代码中添加一个`Do ... Loop Until'。
我想要做的就是自动更改范围并从单元格O2执行所有逻辑测试作为我的代码的起点,直到单元格O1700获得"END"
的值
因此,如果O2 =“NA”的值,则执行所有IF,如果不是仅跳到下一个单元格并再次执行AvtiveCell =“NA”并再次直到“END”。
我添加了类似的东西,但它不能正常工作它只找到第一个“NA”单元格然后停止。
Range ("O2").Select
IF (ActiveCell = "NA") THEN
'MY CODE
ELSE
DO
ActiveCell.Offset(1, 0).Select
Loop Until (ActiveCell = "END")
非常感谢您的帮助。 感谢
答案 0 :(得分:1)
If
必须在里面循环:
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"
答案 1 :(得分:1)
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"
P.S。
#N/A
而不是NA
Select
,因为它会降低您的代码速度。它还可能降低可维护性。 答案 2 :(得分:0)
尝试
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
如果可能,请避免选择单元格,除非您要向用户显示选择更改。它会减慢进程并使编码变得复杂。