下面的代码是Excel的VBA。我正在使用Excel 2007随附的视觉基本编辑器。

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

代码不编译。在代码上方我只有声明。根据MSDN这应该有效,但事实并非如此。

答案

While构造不是用End While但是有一个Wend

While counter < 20
    counter = counter + 1
Wend

请注意,该信息在文档中很容易获得;只是按F1。您链接到的页面涉及Visual Basic .NET,而不是VBA。虽然(不打算)vba和vb.net之间的语法有一定程度的重叠,但一个人不能只是假设一个文档可以直接应用于另一个文档。

也在VBA帮助文件中:

TipDo...Loop声明提供了一种更具结构化和灵活的方法来执行循环。

来自: stackoverflow.com