"While.. 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, это должно работать, но это не так. Что случилось?
Ответы
Ответ 1
Конструкции While
завершаются не с помощью End While
, а с Wend
.
While counter < 20
counter = counter + 1
Wend
Обратите внимание, что эта информация легко доступна в документации; просто нажмите F1. страница, которую вы ссылаетесь на, касается Visual Basic.NET, а не VBA. Хотя (нет каламбурования) существует некоторая степень перекрытия в синтаксисе между VBA и VB.NET, нельзя просто предположить, что документация для одного может быть применена непосредственно к другому.
Также в файле справки VBA:
Совет Оператор Do...Loop
обеспечивает более структурированный и гибкий способ выполнения циклов.
Ответ 2
VBA не VB/VB.NET
Правильная ссылка на использование Do..Loop Statement (VBA). Также см. Статью Excel VBA For, Do While и Do до. Один из способов написать это:
Do While counter < 20
counter = counter + 1
Loop
(Но For..Next может быть более уместным здесь.)
Счастливое кодирование.