Excel VBA在编译时未捕获无效属性

时间:2017-05-28 12:01:17

标签: excel vba properties compiler-errors

Excel / VBA编译器似乎在编译时捕获无效属性。这是一个简单的例子: -

Option Explicit
Sub CompileExample()
    Application.Calculzzzzzzzzation = xlCalculationAutomatic
End Sub

它会在运行时失败,但编译得很好。通常这对我来说不是一个问题,但是我试图编译一些机器生成的代码以获得明显的错误而不执行它。有什么方法可以强制编译器执行严格的检查?

1 个答案:

答案 0 :(得分:3)

Excel Application对象有很多方法late bound。其中许多是众所周知的,即工作表函数的那些。因此,编译器无法在编译时检查和拒绝与Application对象相关的任何调用,例如Application.Calculzzzzzzzzation。这样在编译时不匹配的名称将留给最终后期绑定的运行时间。

因此,在使用Application对象时需要小心。编译器不会检测错误编写的方法名称;运行时会这样做。