循环退出不成功

时间:2016-12-09 14:33:30

标签: excel-vba vba excel

为什么循环没有结束? (如果msgbox处于活动状态,则显示值“B”)

Sub sssssssscrscr()
    x = "ABCDEFGHIJKLMNOPQRSTUVXZWY"
    For i = 1 To Len(x)
        For j = 1 To Len(x)
            ActiveCell.Value = Mid(x, i, j)
            'MsgBox ActiveCell.Value
            If ActiveCell.Value = "B" Then Exit For
        Next
    Next
End Sub

4 个答案:

答案 0 :(得分:3)

而不是Exit For您可以放入Exit Sub完全退出宏

答案 1 :(得分:1)

正如Doug Glancy所说,需要再退出一次:)

Sub sssssssscrscr()
x = "ABCDEFGHIJKLMNOPQRSTUVXZWY"
For i = 1 To Len(x)
For j = 1 To Len(x)
ActiveCell.Value = Mid(x, i, j)
'MsgBox ActiveCell.Value
If ActiveCell.Value = "B" Then Exit For
Next
If ActiveCell.Value = "B" Then Exit For
Next
End Sub

答案 2 :(得分:0)

您不需要任何循环。

由于您要更改循环中的ActiveCell's位置,您只需要:

ActiveCell.Value = "B"

答案 3 :(得分:0)

这将多次更改同一单元格的值,而不更改正在更新的单元格。

如果你想离开循环,那么你需要退出它们。您可以使用GoTo来完成此操作:

Sub sssssssscrscr()
    x = "ABCDEFGHIJKLMNOPQRSTUVXZWY"
    For i = 1 To Len(x)
        For j = 1 To Len(x)
            ActiveCell.Value = Mid(x, i, j)
            'MsgBox ActiveCell.Value
            If ActiveCell.Value = "B" Then goto EndLoop
        Next
    Next
    EndLoop:
    'more code goes here
End Sub

EndLoop:之后,您还可以在宏结束之前添加您想要完成的任何其他内容。

如果你让我们知道应该做些什么,我们可以提供更多帮助。由于您提供的信息有限,这可能就是我们真正能做到的。