2012-03-16 3 views
22

아래 코드는 Excel 용 VBA입니다. Excel 2007과 함께 제공되는 Visual Basic 편집기를 사용하고 있습니다."While .. End While"은 VBA에서 작동하지 않습니까?

Dim counter As Integer 
counter = 1 
While counter < 20 
    counter = counter + 1 
end while '<- the compiler is complaining about this statement 

코드가 컴파일되지 않습니다. 코드 위에는 선언 만 있습니다. MSDN에 따르면 이것은 작동해야하지만 그렇지 않습니다. 무슨 일이 일어난?

+4

지금까지 두 가지 답변 ('Do While/Loop' 및'While/Wend') 중에서 필요한 경우이 루프를 벗어날 수있는 간단한 이유 때문에 Do Do 옵션을 사용하는 것이 좋습니다 '나가기 '기능. – mattboy

답변

50

While 구조체는 End While이 아니라 Wend으로 끝납니다.

While counter < 20 
    counter = counter + 1 
Wend 

이 정보는 설명서에서 쉽게 사용할 수 있습니다. F1을 누르기 만하면됩니다. page you link to은 VBA가 아니라 Visual Basic .NET을 다룹니다. VBA와 VB.NET 사이의 구문에는 어느 정도의 중복이 있지만, 해당 설명서가 다른 문서에 직접 적용될 수 있다고 가정 할 수는 없습니다. VBA를 도움말 파일에 또한

:

Do...Loop 문 반복 수행 할 수있는보다 체계적이고 유연한 방법을 제공합니다.

+0

조언 해 주셔서 감사합니다. 나는 거의 같은 이름과 거의 같은 진술로 두 가지 다른 언어, 실제로는 세 가지를 갖는 것이 다소 혼란 스럽다는 것을 말해야 만합니다. – Gorgen

+2

물론, 외워야 할 필요는 없습니다. 도움은 F1 밖에 없습니다 ... –

13

VBA 사용하지 VB/VB.NET

정확한 기준이다 Do..Loop Statement (VBA)이다. 또한 Excel VBA For, Do While, and Do Until 문서를 참조하십시오. 이 쓸 수있는 한 가지 방법은 다음과 같습니다

Do While counter < 20 
    counter = counter + 1 
Loop 

(그러나 For..Next 여기에 더 적합 할 수 있습니다.) 코딩

해피.

+1

+1 나는 '다음을 위해서'가겠다. 또한 Exit Exit For Exit – Fionnuala

+0

@ Fionnuala를 허용하고, Exit Do를 사용하여 Do While..Loop을 종료 할 수도 있습니다. 나는 'While .. Wend'를 빠져 나갈 수 있는지 확신 할 수 없다. –

관련 문제