"Время. End While " не работает в VBA?


Ниже приведен код 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 26

2 ответа:

While конструкции оканчиваются не на End While, а на Wend.

While counter < 20
    counter = counter + 1
Wend
Обратите внимание, что эта информация легко доступна в документации; просто нажмите F1. В Страница вы даете ссылку на предложения с помощью Visual основные .Чистая, не на VBA. В то время как (без каламбура) существует некоторая степень перекрытия в синтаксисе между VBA и VB.NET, нельзя просто предполагать, что документация для одного может быть применена непосредственно к другому.

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

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

На VBA составляет Не ВБ/ВБ.Чистая

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

Do While counter < 20
    counter = counter + 1
Loop

(но a для..Следующий может быть более подходящим здесь.)

Счастливое кодирование.