我是一个excel vba新手,我正在尝试编写一些代码来自动执行特定任务。我设法找到下面的代码并定制它以满足我的需求。由命令按钮激活的代码将从第I列开始查看文本FALSE,从第5行开始。当遇到FALSE时,它将停止并复制同一行中C列中的单元格。
该代码适用于此目的,但我想更进一步。如果代码到达I列中的最后一个填充单元而没有遇到FALSE,我希望它返回到列的顶部并从I1开始搜索。
有没有办法用For循环做这样的事情?我一直在看Do Until和Do While循环,但没有看到类似于我想要做的例子。
非常感谢任何协助。
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
答案 0 :(得分:0)
声明一些布尔变量:Dim isFound As Boolean
,将其设置为false:isFound = False
,如果找到匹配,则将其设置为true:isFound = True
(复制值后右侧)。在For
循环检查后是否找到匹配项If isFound Then...
并检查剩余的5个单元格:从I1
到I5
(因为在前面的循环中我们检查了其余的)或者您可以添加另一个循环,它将转到th I
列。