big*_*yan 6 vbscript excel vba excel-vba
我有一个Excel VBA程序,它循环遍历数据表中的每一行数据.
我的目标是在布尔值bFound
设置为时退出while循环True
.
我认为我的条件"或bFound = True"可能不正确.
bFound = False
While Sheets("Data").Cells(iRow, 1) <> "" Or bFound = True
If Sheets("Data").Cells(iRow, 11) = Sheets("Data2").Cells(iRow, 1) Then
bFound = True
End If
iRow = iRow + 1
Wend
'exit loop after the boolean=true
Run Code Online (Sandbox Code Playgroud)
使用Do ... Loop
和Exit Do
bFound = False
Do While Sheets("Data").Cells(iRow, 1) <> ""
bFound = Sheets("Data").Cells(iRow, 11) = Sheets("Data2").Cells(iRow, 1)
If bFound Then Exit Do
iRow = iRow + 1
Loop
Run Code Online (Sandbox Code Playgroud)
翻转逻辑,我希望这对你有用:
bFound = False
While Sheets("Data").Cells(iRow, 1) <> "" And bFound = False
If Sheets("Data").Cells(iRow, 11) = Sheets("Data2").Cells(iRow, 1) Then
bFound = True
End If
iRow = iRow + 1
Wend
Run Code Online (Sandbox Code Playgroud)
说明:
While Sheets("Data").Cells(iRow, 1) <> "" And bFound = False
Run Code Online (Sandbox Code Playgroud)
将允许循环仅在我们仍有数据要处理的情况下继续进行并且我们仍然没有更改bFound
,其初始值为False
.
另一个选择是在VBS中使用Break的可破坏形式:
Do While Sheets("Data").Cells(iRow, 1) <> ""
If Sheets("Data").Cells(iRow, 11) = Sheets("Data2").Cells(iRow, 1) Then Exit Do
iRow = iRow + 1
Loop
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21225 次 |
最近记录: |