我在excel中有一个VBA宏已经运行了一段时间。我一直在使用这些循环进行更改,但突然代码没有编译:
编译错误:没有按下
我已经尝试过更改为Do While ...循环循环,但我得到了等效的
编译错误:没有执行循环
这是我的代码的结构:
'This loop is fine
While '(code for evaluation)
'code to run in loop
Wend
While '(more eval code)
'code
While '(eval code)
'code
Wend '<--This is where the compile error occurs
'code
While '(eval code)
'code
Wend
'code
Wend
有谁知道这可能是什么问题? (加分:代码缩进是否真的重要?)
答案 0 :(得分:6)
此消息不带时间通常表示未终止 IF
在某处可能存在 IF 而没有匹配的结束时
(这种错误信息有点烦人,因为它隐藏了真正的错误)
答案 1 :(得分:2)
真正的问题是你有一个做太多事情的方法。
你可以找到不匹配的代码块并修复它 - 但是你要解决一个可读性问题,“嘿它有效,不管它”这个借口。
While
'code to run in loop
Wend
' **** move to another method
While
'code
' **** move to another method
While
'code
Wend
' **** move to another method
'code
While
'code
Wend
'code
Wend
在VBA代码中提取方法可能有点痛苦,因为必须确定参数和返回值,然后需要将提取点转换为方法/函数调用。幸运的是,there's a tool for that(免责声明:我写了它)。