为什么循环没有结束? (如果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
答案 0 :(得分:3)
而不是Exit For
您可以放入Exit Sub
完全退出宏
答案 1 :(得分:1)
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:
之后,您还可以在宏结束之前添加您想要完成的任何其他内容。
如果你让我们知道应该做些什么,我们可以提供更多帮助。由于您提供的信息有限,这可能就是我们真正能做到的。