Excel VBA:找到空白单元格时如何退出循环

Excel VBA:找到空白单元格时如何退出循环,vba,excel,Vba,Excel,如果找到空白单元格,我很难找到运行循环的解决方案。这是我第一次使用VBA(但希望不是最后一次),所以提前感谢您的帮助和建议 基本上,对于一列值(“单位”),我希望将每个值复制并粘贴到输入框中,复制结果并粘贴到其他位置,然后重复下一个值,直到“单位”列中的下一个单元格为空 如果您有任何关于如何处理这种情况的建议,我们将不胜感激。我试过各种各样的“做一段时间…”和“如果…”等,但都没能破坏结构 子结果表() Application.ScreenUpdating=False 将单位行设置为整数 Un

如果找到空白单元格,我很难找到运行循环的解决方案。这是我第一次使用VBA(但希望不是最后一次),所以提前感谢您的帮助和建议

基本上,对于一列值(“单位”),我希望将每个值复制并粘贴到输入框中,复制结果并粘贴到其他位置,然后重复下一个值,直到“单位”列中的下一个单元格为空

如果您有任何关于如何处理这种情况的建议,我们将不胜感激。我试过各种各样的“做一段时间…”和“如果…”等,但都没能破坏结构


子结果表()
Application.ScreenUpdating=False
将单位行设置为整数
UnitRows=范围(“单位”).Rows.Count
Do While范围(“单位”)。单元格(i,1)。值“”
i=i+1
范围(“单位”)。单元格(i,1)。复制
范围(“输入”).Paste特殊XLPaste值
范围(“ABBA”)。副本
范围(“ABBAO”)。单元格(i,1)。粘贴特殊值
范围(“BABBA”)。副本
范围(“BABBAO”)。单元格(i,1)。粘贴特殊值
范围(“CABBA”)。副本
范围(“CABBAO”)。单元格(i,1)。粘贴特殊值
范围(“DABBA”)。副本
范围(“大宝”)。单元格(i,1)。粘贴特殊值
范围(“单位”)。副本
范围(“UnitsOutput”).Paste特殊XLPaste值
Application.ScreenUpdating=True
端接头

您可以使用.Value属性检查它是否为空,如下所示:

范围(“单位”)。单元格(i,1)。值“”

当单元格为空时,返回False

我不确定您是否需要代码来跳过循环或在遇到空白时终止整个循环。 如果只需要跳过当前循环,请尝试使用包含If语句的for循环

For i = 1 To UnitRows
    If Range("Units").Cells(i, 1).Value <> "" Then
        'your code here
    End If
Next i
i=1到单位行的

如果范围(“单位”)。单元格(i,1)。值为“”,则
'您的代码在这里
如果结束
接下来我
当单元格(i,1)为空时,marco转到下一个i,直到到达UnitRows

如果要终止循环,请尝试Do while循环

Do While Range("Units").Cells(i, 1).Value <> ""
    'your code here
    i = i + 1
Loop
Do While范围(“单位”)。单元格(i,1)。值“”
'您的代码在这里
i=i+1
环
当单元格(i,1)为空时,条件变为False,因此循环停止


请记住,同时使用For循环和while循环时,请务必注意,尤其是使用相同的变量i来控制循环。

请将代码缩进4个空格,以便正确显示do while循环如何
Do while Range(“Units”).Cells(i,1).Value”“
并不要忘记在循环中添加一行
i=i+1
。如果您希望marco只跳过空白的循环,但继续下一个循环,您可以添加If语句
If Range(“Units”).Cells(i,1).Value”“,然后{Do something}
在您当前的for循环中。感谢您的回复-我已经按照您的建议添加了Do-While循环。现在唯一的问题是它不是以空白单元格结束,而是空白单元格加一。关于如何纠正这个问题有什么帮助吗?谢谢,这个循环工作得很好!我选择了Do While选项,因为我希望在找到空白单元格后停止。
Do While Range("Units").Cells(i, 1).Value <> ""
    'your code here
    i = i + 1
Loop