"Пока .. Конец Пока" не работает в VBA? - PullRequest
27 голосов
/ 16 марта 2012

Код ниже - VBA для Excel.Я использую редактор Visual Basic, который поставляется с Excel 2007.

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

Код не компилируется.Над кодом у меня есть только объявления.Согласно MSDN это должно работать, но это не так.Что случилось?

Ответы [ 2 ]

54 голосов
/ 16 марта 2012
Конструкции

While оканчиваются не символом End While, а символом Wend.

While counter < 20
    counter = counter + 1
Wend

Обратите внимание, что эта информация легко доступна в документации; просто нажмите F1 . Страница , на которую вы ссылаетесь , относится к Visual Basic .NET, а не к VBA. Хотя (без каламбура) существует некоторая степень совпадения синтаксиса между VBA и VB.NET, нельзя просто предположить, что документация для одного из них может быть применена непосредственно к другому.

Также в файле справки VBA:

Совет Оператор Do...Loop обеспечивает более структурированный и гибкий способ выполнения цикла.

14 голосов
/ 16 марта 2012

VBA - это , а не VB / VB.NET

Правильная ссылка на использование: Оператор Do..Loop (VBA) .Также см. Статью Excel VBA для, делай пока и делай до .Один из способов написать это:

Do While counter < 20
    counter = counter + 1
Loop

(но For..Next может быть более подходящим здесь.)

Удачное кодирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...