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

Gor*_*gen 27 excel vba excel-vba

下面的代码是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
Run Code Online (Sandbox Code Playgroud)

代码无法编译.在代码之上我只有声明.根据MSDN, 这应该工作,但事实并非如此.发生了什么事?

Jea*_*ett 54

While构造不是以a End While而是以a 结尾Wend.

While counter < 20
    counter = counter + 1
Wend
Run Code Online (Sandbox Code Playgroud)

请注意,此信息可在文档中找到; 只需按下F1.您链接页面处理Visual Basic .NET,而不是VBA.虽然(没有双关语)在VBA和VB.NET之间的语法上有一定程度的重叠,但是不能只假设一个文档可以直接应用于另一个.

同样在VBA帮助文件中:

提示Do...Loop语句提供了一种更加结构化和灵活的循环方式.

  • 当然,但你不必记住这一切:帮助只是一个F1的距离...... (2认同)

小智 14

VBA不是 VB/VB.NET

正确的使用参考是Do..Loop Statement(VBA).另请参阅文章Excel VBA For,Do While和Do Until.写这个的一种方法是:

Do While counter < 20
    counter = counter + 1
Loop
Run Code Online (Sandbox Code Playgroud)

(但是For..Next可能更合适.)

快乐的编码.