For Loop返回列顶部

时间:2017-07-26 14:50:29

标签: excel-vba vba excel

我是一个excel vba新手,我正在尝试编写一些代码来自动执行特定任务。我设法找到下面的代码并定制它以满足我的需求。由命令按钮激活的代码将从第I列开始查看文本FALSE,从第5行开始。当遇到FALSE时,它将停止并复制同一行中C列中的单元格。

该代码适用于此目的,但我想更进一步。如果代码到达I列中的最后一个填充单元而没有遇到FALSE,我希望它返回到列的顶部并从I1开始搜索。

有没有办法用For循环做这样的事情?我一直在看Do Until和Do While循环,但没有看到类似于我想要做的例子。

非常感谢任何协助。

Picture of the Worksheet

Private Sub CommandButton1_Click()
Dim LR As Long, i As Long
    With Sheets("Sheet1")
        LR = .Range("I" & Rows.Count).End(xlUp).Row
        For i = 5 To LR
            With .Range("I" & i)
                If .Text = ("FALSE") Then
                    .Offset(0, -6).Copy
                Exit For
                End If
            End With
        Next i
    End With
End Sub

1 个答案:

答案 0 :(得分:0)

声明一些布尔变量:Dim isFound As Boolean,将其设置为false:isFound = False,如果找到匹配,则将其设置为true:isFound = True(复制值后右侧)。在For循环检查后是否找到匹配项If isFound Then...并检查剩余的5个单元格:从I1I5(因为在前面的循环中我们检查了其余的)或者您可以添加另一个循环,它将转到th I列。