2016-07-12 2 views
0

범위의 모든 셀이 채워지면 내 문제가 do until 루프를 종료합니다. 지금까지 나는 하나의 셀이 채워질 때만 멈출 수 있습니다.범위에있는 모든 셀만 채워지면 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

이 나는 ​​그것이 차이 때를 취하면 잘 모르겠어요하지만 사전에 Find 매개 변수를 설정할 수 있습니다

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

생각할 수있는 가장 짧은 (반드시 빠른/최고) 코드입니다 ""

가능하면 무한 루프로 끝날 수 없으므로 모든 셀을 반복하는 것이 더 안전합니다.

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 방법은 수도 큰 범위를 반복하는 것보다 더 좋은 방법이 있지만 더 빠르지 만 ...

+0

고마워요.하지만 모든 세포가 채워지는지 확인하려면 메신저가 가득 차면 루프가 멈춰야합니다. – user1922856

+0

시도해 보셨습니까? 그것은 당신이 묘사 한 것을 정확하게합니다. 모든 셀이 채워지면'.Find ("" ")는 아무것도 찾지 못하고'Nothing'을 반환합니다. – arcadeprecinct

+0

모든 셀을 채우기 전에 루프를 중지합니다. 내가 선택한 범위의 셀에 쓰기 때문에. 일단 채워지면 루프가 멈추고 종료되어야합니다. – user1922856

관련 문제