“虽然......结束时”在VBA中不起作用?

时间:2012-03-16 07:53:51

标签: vba excel-vba excel

以下代码是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}},这应该有效,但事实并非如此。发生了什么事?

2 个答案:

答案 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可能更合适。)

快乐的编码。