首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel VBA:如果找到空白单元格,如何退出循环

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

Stack Overflow用户
提问于 2017-10-10 02:10:48
回答 1查看 15.3K关注 0票数 0

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

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

对于如何在这种情况下提供任何建议,我们将不胜感激。我试过各种各样的“在.”还有“如果.”等等,但无法破坏结构。

代码语言:javascript
运行
复制
Sub ResultsTable()

    Application.ScreenUpdating = False

    Dim UnitRows As Integer
    UnitRows = Range("Units").Rows.Count

    Do While Range("Units").Cells(i, 1).Value <> ""

    i = i + 1

        Range("Units").Cells(i, 1).Copy
        Range("Input").PasteSpecial xlPasteValues

        Range("ABBA").Copy
        Range("ABBAO").Cells(i, 1).PasteSpecial xlPasteValues

        Range("BABBA").Copy
        Range("BABBAO").Cells(i, 1).PasteSpecial xlPasteValues

        Range("CABBA").Copy
        Range("CABBAO").Cells(i, 1).PasteSpecial xlPasteValues

        Range("DABBA").Copy
        Range("DABBAO").Cells(i, 1).PasteSpecial xlPasteValues



    Range("Units").Copy
    Range("UnitsOutput").PasteSpecial xlPasteValues

    Application.ScreenUpdating = True

End Sub
EN

Stack Overflow用户

发布于 2017-10-10 04:04:38

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

Range("Units").Cells(i, 1).Value <> ""

当单元格为空时,它返回False。

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

代码语言:javascript
运行
复制
For i = 1 To UnitRows
    If Range("Units").Cells(i, 1).Value <> "" Then
        'your code here
    End If
Next i

当单元格(i,1)为空时,marco进入下一个i,直到它到达UnitRows。

如果要终止循环,请尝试一个Do-while循环。

代码语言:javascript
运行
复制
Do While Range("Units").Cells(i, 1).Value <> ""
    'your code here
    i = i + 1
Loop

当单元格(i,1)为空时,条件变为False,因此循环停止。

记住,当同时使用For循环和while循环时,始终要注意,特别是使用相同的变量i来控制循环。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46657645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档