以下代码是VBA for Excel。我正在使用Excel 2007附带的Visual Basic编辑器。
Dim counter As Integer
counter = 1
While counter < 20
counter = counter + 1
end while '<- the compiler is complaining about this statement
代码无法编译。在代码之上我只有声明。根据{{3}},这应该有效,但事实并非如此。发生了什么事?
答案 0 :(得分:54)
While
结构不是以End While
结尾,而是Wend
。
While counter < 20
counter = counter + 1
Wend
请注意,此信息可在文档中找到;只需按 F1 即可。 page you link to处理Visual Basic .NET,而不是VBA。虽然(没有双关语)在VBA和VB.NET之间的语法上有一定程度的重叠,但是不能只假设一个文档可以直接应用于另一个。
同样在VBA帮助文件中:
提示
Do...Loop
语句提供了一种更加结构化和灵活的循环方式。
答案 1 :(得分:14)
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可能更合适。)
快乐的编码。