Excel For循环返回到列的顶部

Excel For循环返回到列的顶部,excel,vba,Excel,Vba,我是一名excel vba新手,我正在尝试编写一些代码来自动化特定任务。我设法找到了下面的代码,并对其进行了定制以满足我的需要。由命令按钮激活的代码将在第I列中查找以第5行开头的文本FALSE。当遇到FALSE时,它将停止并将C列中的单元格复制到同一行 代码就是为了这个目的而工作的,但我想更进一步。如果代码到达I列中最后一个填充的单元格时没有遇到FALSE,我希望它返回到列的顶部,并从I1开始搜索 有没有一种方法可以用For循环来做类似的事情?我一直在研究Do-Until和Do-While循环,

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

代码就是为了这个目的而工作的,但我想更进一步。如果代码到达I列中最后一个填充的单元格时没有遇到FALSE,我希望它返回到列的顶部,并从I1开始搜索

有没有一种方法可以用For循环来做类似的事情?我一直在研究Do-Until和Do-While循环,但还没有看到一个类似于我所尝试的例子

如蒙协助,将不胜感激


声明一些布尔变量:
Dim isFound为boolean
,将其设置为false:
isFound=false
,如果找到匹配项,则将其设置为true:
isFound=true
(在复制值之后)。在
For
循环检查是否找到匹配
如果找到则…
并检查剩余的5个单元格:从
I1
I5
(因为在前面的循环中,我们检查了其余的单元格),或者您可以添加另一个循环,该循环将通过
I
列。

那么为什么不
对于I=1到LR
?另外,在
.Copy
之后粘贴到哪里?可能可以使用
范围。查找
而不是暴力迭代…该程序有点独特。C列中的值表示员工的有序列表,必须按照从上到下的特定顺序分配工作,每次分配一个工作项。假值表示上班的员工,真值表示缺席的员工。我希望代码按顺序查找列表中的下一个FALSE(下一个可用员工)。在我最后的工作表中,将有10个命令按钮。第一个将用于i=2到LR,第二个将用于i=3到LR,依此类推,直到我将用于i=1到LR的最后一个按钮。复制的数据将粘贴到Excel之外的其他程序中。成功了!非常感谢你的帮助!
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