1

选项推断在 VBA 中不起作用吗?

我正在尝试在 Microsoft Access 中测试有关数组的 VB 教程代码。

Dim numbers = {{1, 2}, {3, 4}, {5, 6}}

如果没有 Option Infer ON,这将不起作用,但如果添加它,则会出现编译错误。

总菜鸟问题。

4

2 回答 2

4

Option Infer指令是 Visual Studio 2008 中添加到 VB.Net 的一项功能。VBA 编译器是一个完全不同的实现,从未更新,Option Infer因此无法使其工作

于 2014-02-18T01:00:50.590 回答
0

只是为了添加到这篇文章中;虽然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!

不是最佳实践。

修订

为了进一步强调这种方法的低劣质量,我有过几次[原始程序员的]代码愉快地崩溃的经历,导致整个应用程序崩溃,因为变量没有正确定义。

于 2017-02-15T15:44:30.923 回答