Excel / VBA编译器似乎在编译时捕获无效属性。这是一个简单的例子: -
Option Explicit
Sub CompileExample()
Application.Calculzzzzzzzzation = xlCalculationAutomatic
End Sub
它会在运行时失败,但编译得很好。通常这对我来说不是一个问题,但是我试图编译一些机器生成的代码以获得明显的错误而不执行它。有什么方法可以强制编译器执行严格的检查?
答案 0 :(得分:3)
Excel Application
对象有很多方法late bound
。其中许多是众所周知的,即工作表函数的那些。因此,编译器无法在编译时检查和拒绝与Application
对象相关的任何调用,例如Application.Calculzzzzzzzzation
。这样在编译时不匹配的名称将留给最终后期绑定的运行时间。
因此,在使用Application
对象时需要小心。编译器不会检测错误编写的方法名称;运行时会这样做。