如果仅填充范围内的所有单元格,则停止直到循环

时间:2016-07-12 13:58:19

标签: excel vba

一旦填充了范围内的所有单元格,我的问题就是退出do until循环。到目前为止,我只设法在一个单元格填满时停止。

do until 

do something()

for each cel in range("A1:A20")

   if isEmpty(cel.value)=true then

   else

exit do

  end if

next

loop

1 个答案:

答案 0 :(得分:0)

这是我能想到的最短(不一定是最快/最好)的代码

Do Until Range("A1:A20").Find("") Is Nothing
    '...
Loop

可能需要预先设置Find参数,但我不确定在搜索""

时是否会有所作为

如果可能的话,循环遍历所有单元格会更安全,因为你无法以无限循环结束。

For Each cel in Range("A1:A20")
    If Range("A1:A20").Find("") Is Nothing Then Exit For
    'do your thing
Next cel

或者如果您的操作仅影响当前单元格:

For Each cel in Range("A1:A20")
    If Not IsEmpty(cel) Then
        'do your thing
    End If
Next cel

如果您的范围非常大并且您希望在早期达到所有单元格填充的点,那么.Find方法可能会更快,尽管有更好的方法而不是在大范围内循环... < / p>