选项推断在 VBA 中不起作用吗?
我正在尝试在 Microsoft Access 中测试有关数组的 VB 教程代码。
Dim numbers = {{1, 2}, {3, 4}, {5, 6}}
如果没有 Option Infer ON,这将不起作用,但如果添加它,则会出现编译错误。
总菜鸟问题。
选项推断在 VBA 中不起作用吗?
我正在尝试在 Microsoft Access 中测试有关数组的 VB 教程代码。
Dim numbers = {{1, 2}, {3, 4}, {5, 6}}
如果没有 Option Infer ON,这将不起作用,但如果添加它,则会出现编译错误。
总菜鸟问题。
该Option Infer
指令是 Visual Studio 2008 中添加到 VB.Net 的一项功能。VBA 编译器是一个完全不同的实现,从未更新,Option Infer
因此无法使其工作
只是为了添加到这篇文章中;虽然Option Infer
不存在,但在 VBA 中你仍然可以Option Explicit
关闭它,这会给你一个糟糕的版本。但是要小心,因为这不是真的Option Infer
。您所做的只是让 VBA 主要使用变体来存储值。然后 VBA 引擎决定变体的最佳子类型是什么。例如:
Dim a, b
a = 2
b = 3.2
Debug.Print a * b
会很开心地工作。但是,您可以稍后继续更改该值,就像这样......
Dim a, b
a = 2
b = 3.2
Debug.Print a * b
a = "Hello, World!"
Debug.Print a
它工作得非常愉快并产生输出:
6.4
Hello, World!
不是最佳实践。
为了进一步强调这种方法的低劣质量,我有过几次[原始程序员的]代码愉快地崩溃的经历,导致整个应用程序崩溃,因为变量没有正确定义。