Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA循环每次都会崩溃_Vba - Fatal编程技术网

VBA循环每次都会崩溃

VBA循环每次都会崩溃,vba,Vba,我正在尝试编写一个VBA代码,它遵循从单元格E4开始的每个单元格上的说明。U表示向上,D表示向下,R表示向右。它将按照指示,在一间牢房“小屋”结束。但是,每次我尝试运行excel时,代码都会崩溃。我的意思是excel只是停止响应。附加工作表片段以进一步清晰-图像 Sub findhome() 范围(“E4”)。选择 在ActiveCell时执行。值为“小屋” 如果ActiveCell.Value=“R”,则 ActiveCell.Offset(0,1)。选择 ElseIf ActiveCell.

我正在尝试编写一个VBA代码,它遵循从单元格E4开始的每个单元格上的说明。U表示向上,D表示向下,R表示向右。它将按照指示,在一间牢房“小屋”结束。但是,每次我尝试运行excel时,代码都会崩溃。我的意思是excel只是停止响应。附加工作表片段以进一步清晰-图像

Sub findhome()
范围(“E4”)。选择
在ActiveCell时执行。值为“小屋”
如果ActiveCell.Value=“R”,则
ActiveCell.Offset(0,1)。选择
ElseIf ActiveCell.Value=“D”然后
ActiveCell.Offset(1,0)。选择
ElseIf ActiveCell.Value=“U”然后
ActiveCell.Offset(-1,0)。选择
f端
环
端接头

你做过什么吗?你可以一行一行地检查你的代码,看看出了什么问题。否则,请提供一个包含输入数据的示例,以便其他人可以测试和再现您的问题。我注意到您有一个无限循环条件。如果选择落在任何不包含值R/D/U或SHOTCH的单元格上,循环将无限期地继续。所谓“崩溃”是指将Excel置于“无响应”状态吗?从你正在做的事情来看,如果你从未找到“小屋”,你将永远不会退出循环。是的,我的意思是excel停止响应。为进一步澄清,附上了相关工作表/数据源的图像。
Sub findhome()
Range("E4").Select
    Do While ActiveCell.Value <> "Cottage"
        If ActiveCell.Value = "R" Then
            ActiveCell.Offset(0, 1).Select
        ElseIf ActiveCell.Value = "D" Then
            ActiveCell.Offset(1, 0).Select
        ElseIf ActiveCell.Value = "U" Then
            ActiveCell.Offset(-1, 0).Select
        End f
    Loop
End Sub