VBA:在If中退出

VBA:在If中退出,vba,excel,loops,while-loop,Vba,Excel,Loops,While Loop,好的,可能很简单,但我刚刚开始使用这种语言,在这段代码中: While DATA.Cells(1, i).value & "" <> "" If InStr(DATA.Cells(1, i).value, columnName) > 0 Then column = i Exit While End If i = i + 1 Wend While DATA.Cells(1,i).value&“ 如果InStr(DA

好的,可能很简单,但我刚刚开始使用这种语言,在这段代码中:

While DATA.Cells(1, i).value & "" <> ""
    If InStr(DATA.Cells(1, i).value, columnName) > 0 Then
        column = i
        Exit While
    End If
    i = i + 1
Wend
While DATA.Cells(1,i).value&“
如果InStr(DATA.Cells(1,i).value,columnName)>0,则
列=i
退出时
如果结束
i=i+1
温德

看起来这不是使用退出的方式,是吗?那么我该怎么做呢?

一个
While/Wend
只能通过
转到
或从外部块退出(
Exit sub
/
函数
/
另一个可退出循环

更改为
Do
loop-intead

Do While DATA.Cells(1, i).value & "" <> ""
If InStr(DATA.Cells(1, i).value, columnName) > 0 Then
    column = i
    Exit Do
End If
i = i + 1
Loop
Do While DATA.Cells(1,i.value&“”
如果InStr(DATA.Cells(1,i).value,columnName)>0,则
列=i
退出Do
如果结束
i=i+1
环
来自@Alex K.的原始答案。

它是重复的,但问题名称很容易被其他人找到@你在While陈述中的情况让我困惑。当CELL.value不是空字符串时,请尝试描述它应该做什么。